正则表达式以获取PHP代码中的引用文本

时间:2009-11-12 13:12:24

标签: php regex

我有以下一行:

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

我需要一个正则表达式来抓取'mytext'。我能想到的最好的是:

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

但在这种情况下它会返回:

mytext");?>somesometext

有人能让这个工作吗?

3 个答案:

答案 0 :(得分:3)

更好地利用PHP能够使用token_get_all解析自己的代码,逐步执行代码并在第一个T_CONSTANT_ENCAPSED_STRING token处停止。

答案 1 :(得分:2)

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

应该有效。 ?将匹配模式切换为 ungreedy

答案 2 :(得分:2)

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

?使*量词不合理。