[英]PHP Regular expression to find string enclosed in __("STRING_TO_EXTRACT")
对不起,我真的很讨厌正则表达式。 我需要收集我的应用程序中包含在此示例中的所有字符串: __("STRING") 该字符串也可以用单引号括起来。
我用下面的代码试了一下:
$str = "__('match1') __("match2") do_not_include __('match3')";
preg_match_all("/__\(['\"](.*)['\"]\)/", $str, $matches);
var_dump($matches);
但它只能将整个行字符串与 1 个匹配项匹配。 示例结果如下。 请帮我编辑正则表达式,以便它应该能够获得 3 个匹配项。
match1') __("match2") do_not_include __('match3
在此先感谢您的帮助。
您可以使用:
$str = "__('match1') __(\"match2\") do_not_include __('match3')";
preg_match_all('/__\(([\'"])(.*?)\1\)/', $str, $matches);
print_r($matches[2]);
([\\'"])
将匹配单引号或双引号并将其捕获在组 #1 中。
.*?
将匹配 0 个或多个字符(非贪婪)
\\1
是上述捕获组的反向引用,以确保字符串在 RHS 上用相同的引号关闭。
输出:
Array
(
[0] => match1
[1] => match2
[2] => match3
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.