小编ahm*_*007的帖子

正则表达式.如何在匹配模式后从结果中排除子字符串

我想知道如何在匹配模式后从结果中排除子字符串.例:

<a href="?page1"><?php __('string1');?></a>
<a href="?page2"><?php __("string2");?></a>
Run Code Online (Sandbox Code Playgroud)

我想只获得作为参数传递给__()函数的字符串.我试过这个正则表达式:

'/__\(((\'([^\']+)\')|(\"([^\"]+)\"))/'
Run Code Online (Sandbox Code Playgroud)

但是返回'string1'和"string2"包装在单引号和双引号中.
如何排除单引号和双引号?

regex

6
推荐指数
1
解决办法
1万
查看次数

正则表达式,带有preg_match_all的模式中的反向引用问题

我想知道这里的反向引用有什么问题:

preg_match_all('/__\((\'|")([^\1]+)\1/', "__('match this') . 'not this'", $matches);
Run Code Online (Sandbox Code Playgroud)

它应该匹配__('')之间的字符串,但实际上它返回:

match this') . 'not this
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php regex backreference preg-match-all

2
推荐指数
1
解决办法
2757
查看次数

标签 统计

regex ×2

backreference ×1

php ×1

preg-match-all ×1