Próbuję uciec z ciągu znaków do użycia w wyrażeniu regularnym w PHP. Do tej pory próbowałem:Jak prawidłowo uciec ciąg znaków do wykorzystania w wyrażeniu regularnym w PHP?
preg_quote(addslashes($string));
myślałem muszę addslashes
w celu właściwego uwzględnienia wszelkich cytatów, które w ciągu. Następnie preg_quote
wymyka się ze znaków wyrażenia regularnego.
Problem polega jednak na tym, że cudzysłowy są ujęte z odwrotnym ukośnikiem, np. \'
. Ale potem preg_quote
wymyka się ukośnikowi wstecznemu z innym, np. \\'
. Pozostaje więc to, że cytat ponownie się nie zmienia. Przełączanie tych dwóch funkcji również nie działa, ponieważ pozostawiłoby to ukośny ukośnik odwrotny, który jest następnie interpretowany jako specjalny znak wyrażeń regularnych.
Czy istnieje funkcja w PHP, aby wykonać zadanie? Albo jak by to zrobić?
Gdzie jest Twoje wyrażenie regularne? Opublikuj to też –
Och, myślałem, że problem jest niezależny od rzeczywistego wyrażenia regularnego, którego używam. W tej chwili próbuję użyć ''\ (? I) (? <=^| [^ A-z])'. Preg_quote (addslashes ($ string)). '\ I'' który nie działa. – Daniel
Ograniczniki są nieprawidłowe, zamiast tego użyj ukośników lub tyld. 'addslashes' jest bezużyteczne. Użyj drugiego parametru "preg_quote". Zauważ, że '(? <=^| [^ A-z])' jest takie samo jak '(?