php preg_match_all 在字符串中查找gettext语言字符串

php preg_match_all find gettext language strings in a string

你好

所以我试图在 php 中的字符串中查找多 gettext 语言字符串。

像这样:

$test = "
    sadsssss_('test1');

    sdfsd _('test2');
";
preg_match_all("/_('(.*?)')/s", $test, $matches);
echo '<pre>';
print_r($matches);
echo '</pre>';

这个例子行不通,但话又说回来,我对模式了解不多。

尝试使用谷歌搜索,找不到我可以使用的模式。

谢谢。

您的原始表达式很好,我们可能想添加一个 m 标志:

\('(.+?)'\)

测试

$re = '/\(\'(.+?)\'\)/m';
$str = '    sadsssss_(\'test1\');

    sdfsd _(\'test2\');
';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

foreach ($matches as $key => $value) {
    echo $value[1] . "\n";
}

DEMO

正则表达式电路

jex.im 可视化正则表达式: