查找特定花括号内的引号之间的每个字符串

时间:2014-11-03 23:31:34

标签: regex

我正在编写一个脚本,帮助我在项目中捕获所有本地化的字符串,并且我遇到了RegEx。

在以下字符串{{ translateAttr title="button.add_user.title" data-disable-with="button.add_user.disabled" }}中,我希望能够捕获“button.add_user.title”和“button.add_user.disabled”,因为我的花括号以{开头{1}}属性。

到目前为止,我已经使用了这条规则translateAttr,但正如您在http://lumadis.be/regex/test_regex.php?id=2362看到的那样,它并不匹配所有匹配项。

在这里给予一点帮助将非常感激。

编辑:模式我也希望正则表达式匹配

\{{2}translateAttr .*=(['"])(.+?)(?=(?<!\\)\1)\1 ?}{2}

EDIT2:我不喜欢匹配的模式

{{ translateAttr title="button with \"escaped quotes\" here" data-disable-with='button with single quotes' }}
{{ translateAttr title="want this with ' single quote" "but not this one" }}

由于

1 个答案:

答案 0 :(得分:2)

使用以下使用PCRE动词(*SKIP)(*F)

的正则表达式
^(?!.*?\{{2}\h*translateAttr).*(*SKIP)(*F)|=(["'])((?:\\\1|(?!\1).)*)\1

DEMO

Explanation