Как я могу сопоставить ключевое слово, которое полностью само по себе?
Например, я хочу только совместить hello
в такой строке,
/say/hello/world/
/say/hello/
но не в них,
/say/helloworld/
/say/hello-world/
/say/hello+world/
/say_hello_world/
До сих пор с этой моделью,
var_dump(preg_match('~.*?(?=hello)~i', $string)); // int 1
Он соответствует всем им!
Я хочу только /something/hello/world/
быть int 1
- возможно ли это?
Измените lookahead, чтобы включить косые черты:
~.*?(?=/hello/)~i
Код:
var_dump(preg_match('~.*?(?=/hello/)~i', $string));
Вы можете использовать это регулярное выражение с поисковыми окнами:
(?<=/)hello(?=/)
Код:
if ( preg_match_all('~(?<=/)hello(?=/)~i', $string, $m) )
print_r($m);
Warning: preg_match(): Unknown modifier 'h' in..
тогда он не совпадает /say/hello/
Warning: preg_match(): No ending delimiter '.' found in
тогда не совпадает/say/hello/
~.*?(?=/hello/)~i
.