Rozwiązanie (o którym inne odpowiedzi nie wspominają - przynajmniej w czasie, kiedy to pisałem) jest takie, że kiedy PHP odnosi się do ograniczników, nie odnosi się do ograniczników, które widzisz w kodzie (które są cudzysłowami), ale następny znaków w ciągu. (Właściwie nigdy nie widziałem tego nigdzie w żadnej dokumentacji: musisz to zobaczyć w przykładach). Zamiast więc mieć składnię wyrażeń regularnych, taką jak ta, do której możesz być przyzwyczajony w wielu innych językach:
/something/
PHP używa łańcuchów, a następnie szuka w nich innego separatora:
'/something/'
Separator, do którego odnosi się PHP, to para /znaków zamiast pary 'znaków. Więc jeśli piszesz 'something', PHP weźmie sza zamierzony separator i narzeknie, że nie możesz używać znaków alfanumerycznych jako separatora.
Więc jeśli chcesz przekazać (na przykład) an, iaby pokazać, że chcesz dopasować bez uwzględniania wielkości liter, przekazujesz go wewnątrz ciągu, ale poza ogranicznikami wyrażenia regularnego:
'/something/i'
Jeśli chcesz użyć czegoś innego niż /jako separatora, możesz, na przykład, dopasować adres URL i nie chcesz uciekać przed wszystkimi ukośnikami:
'~something~'
preg_match()jako zmienne, upewnij się, że kolejność zmiennych nie została przypadkowo pomieszana w wywołaniu funkcji, ponieważ prawie na pewno spowoduje to to samo pojawia się błąd.