регулярное выражение для захвата цитируемого текста в коде PHP - PullRequest
1 голос
/ 12 ноября 2009

У меня есть следующая строка:

<?php echo $this->__("mytext");?>somesometext")moretext

и мне нужно регулярное выражение для захвата 'mytext'. Лучшее, что я мог придумать, это:

/\$this->__\([\'"](.*)[\'"]\)/

но в этом случае возвращается:

mytext");?>somesometext

Кто-нибудь может заставить это работать?

Ответы [ 3 ]

3 голосов
/ 12 ноября 2009

Лучше использовать способность PHP анализировать свой собственный код с token_get_all, пройти через токены и остановиться на первом T_CONSTANT_ENCAPSED_STRING токене .

2 голосов
/ 12 ноября 2009
/\$this->__\([\'"](.*?)[\'"]\)/

? делает квантификатор * несвязным.

2 голосов
/ 12 ноября 2009
/\$this->__\([\'"](.*?)[\'"]\)/

должно работать. ? переключает режим матча на ungreedy .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...