正则表达式查找未用__(“”)封装的字符串

时间:2013-08-12 22:25:48

标签: regex phpstorm regex-negation

我试图在我们的代码中找到需要发送到__()函数的任何字符串实例。

我有以下正则表达式:

 (\[|__\()[\'\"][\w\s\\\:]+[\'\"]

匹配:

 ['valid string'
 ["valid::str::ing"
 __('valid\String'
 __(" v a l i d s t r i n g "

但不是:

 'hel\lo there '
 "he::he"

我需要它来扭转比赛。我尝试了各种方法来否定([| __()部分,但没有取得任何成功。

如何编写表达式以匹配前面没有[或__(?

)的字符串

谢谢。

2 个答案:

答案 0 :(得分:0)

您可能可以使用负面的后视。请参阅:

http://www.regular-expressions.info/lookaround.html

答案 1 :(得分:0)

/([^\[\(]|[^\_]\(|[^\_]_\()[\'\"][\w\s\\\:]+[\'\"]/

'"的字符串与前面没有[(的字符串匹配, 但允许(如果它前面不是_, 如果前面没有第二个_(,也允许_