抱歉,我真的很讨厌regexp。我需要收集应用程序中包含在此示例中的所有字符串:__(“ 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
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句