我有以下一行:
<?php echo $this->__("mytext");?>somesometext")moretext
我需要一个正则表达式来抓取'mytext'。我能想到的最好的是:
/\$this->__\([\'"](.*)[\'"]\)/
但在这种情况下它会返回:
mytext");?>somesometext
有人能让这个工作吗?
答案 0 :(得分:3)
更好地利用PHP能够使用token_get_all
解析自己的代码,逐步执行代码并在第一个T_CONSTANT_ENCAPSED_STRING
token处停止。
答案 1 :(得分:2)
/\$this->__\([\'"](.*?)[\'"]\)/
应该有效。 ?
将匹配模式切换为 ungreedy 。
答案 2 :(得分:2)
/\$this->__\([\'"](.*?)[\'"]\)/
?
使*
量词不合理。