Php 获取包含单引号或双引号的括号内的文本
我试图在我的所有PHP文件中找到i18n函数中的字符串。以下是一个例子:Php 获取包含单引号或双引号的括号内的文本,php,regex,Php,Regex,我试图在我的所有PHP文件中找到i18n函数中的字符串。以下是一个例子: $string = '__("String 2"); __("String 3", __("String 4"));' . "__('String 5'); __('String 6', __('String 7'));"; var_dump(preg_match_all('#__\((\'|")([^\'"]+)(\'|")\)#', $string, $match)); var_dump($match); 我想得到
$string = '__("String 2"); __("String 3", __("String 4"));' . "__('String 5'); __('String 6', __('String 7'));";
var_dump(preg_match_all('#__\((\'|")([^\'"]+)(\'|")\)#', $string, $match));
var_dump($match);
我想得到这个结果:
array
0 => array
0 => string 'String 2' (length=8)
1 => string 'String 3' (length=8)
2 => string 'String 4' (length=8)
3 => string 'String 5' (length=8)
4 => string 'String 6' (length=8)
4 => string 'String 7' (length=8)
但不幸的是我得到了这个结果
array
0 => array
0 => string '__("esto es una prueba")' (length=24)
1 => string '__("esto es una prueba 2")' (length=26)
2 => string '__("prueba 4")' (length=14)
3 => string '__('caca')' (length=10)
4 => string '__('asdsnasdad')' (length=16)
1 => array
0 => string '"' (length=1)
1 => string '"' (length=1)
2 => string '"' (length=1)
3 => string ''' (length=1)
4 => string ''' (length=1)
2 => array
0 => string 'esto es una prueba' (length=18)
1 => string 'esto es una prueba 2' (length=20)
2 => string 'prueba 4' (length=8)
3 => string 'caca' (length=4)
4 => string 'asdsnasdad' (length=10)
3 => array
0 => string '"' (length=1)
1 => string '"' (length=1)
2 => string '"' (length=1)
3 => string ''' (length=1)
4 => string ''' (length=1)
提前感谢。不要捕捉引用
还可以查看不同输出格式的flags参数。不要捕获引号
preg_match_all('/(?<=\(["\']).*?(?=[\'"])/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];
还可以查看不同输出格式的flags参数。
preg\u match\u all('/(?preg\u match\u all('/(?谢谢…几乎完美…但是正则表达式忽略字符串3和字符串6,因为右引号后有一个逗号…谢谢…几乎完美…但是正则表达式忽略字符串3和字符串6,因为右引号后有一个逗号…@toledorobia没问题。请注意注释!)@托莱多罗维亚没问题。注意笔记!:)
preg_match_all('/(?<=\(["\']).*?(?=[\'"])/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];