Php preg_match help - PullRequest
       6

Php preg_match help

0 голосов
/ 19 ноября 2009

Я пытаюсь найти php preg_match, который может соответствовать

test1 test2 [...], но не test1 test2 [...]

и вернуть test2 (...) в качестве вывода в виде $ match.

Я пытался

preg_match('/^[a-zA-Z0-9][\[](.*)[\]]$/i',"test1 test2[...]", $matches);

Но это соответствует обоим случаям и возвращает полное предложение.

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 19 ноября 2009
preg_match('/([a-zA-Z0-9]+[\[][^\]]+[\]])$/i',"test1 test2[...]", $matches);

обратите внимание на + после [a-zA-Z0-9] написано один или несколько буквенно-цифровых символов

( и ) вокруг всего выражения позволят вам уловить все выражение.

Поскольку ваш контент около [], я изменил .* на [^\]], поскольку регулярное выражение жадное в случае test2[.....] test3[sadsdasdasdad] оно будет записываться до конца, так как есть ].

Также обратите внимание, что, поскольку вы используете $, он всегда будет соответствовать вещам, в конце концов, я не совсем уверен, что вы собираетесь делать.

Вы можете посмотреть это для справки.

...