__('...')的正则表达式

时间:2014-09-27 19:41:57

标签: javascript regex regex-negation

我正在尝试使用正则表达式来解决问题: 我希望匹配以

开头的所有内容
__(' or __("  

结束
') or ") 

我试过

/__\(['"][^']*['"]\)/g  and /__\(['"].*['"]\)/g

但是这些示例文本都有问题:

text that should not match
__('all text and html<a href="#">link</a> that should match') text that should not match __('all text and html<a     href="#">link</a>')
__("all text and html<a href="#">link</a>") text that should not match __("all text and html<a     href="#">link</a>")
other text that should not match
谁拥有获奖的RegExp?

2 个答案:

答案 0 :(得分:0)

使用第二个示例,使用*?进行非贪婪匹配,并考虑使用引号的反向引用。

/__\((['"]).*?\1\)/g

Live Demo

答案 1 :(得分:0)

我想你想要非贪婪的匹配,那么最好的解决方案是使用:

/__\(['"][^']*?['"]\)/g

此外,转发单引号和双引号可能会有所帮助:

您可以在此regex101

进行检查

http://regex101.com/r/sM8yF9/1