我的正则expression式太多了。 我怎么能告诉它匹配尽可能最小的模式?

我有这个RegEx:

('.+') 

它必须与C中的字符文字相匹配。例如,如果我有'a' b 'a'它应该匹配a和它们周围的字母。

然而,它也匹配(它不应该),也许是因为严格来说,也是在两者之间。

这是一个错误的截图(我使用这个语法突出显示):
截图

我对正则expression式相当陌生。 我怎么能告诉正则expression式不匹配?

这是贪婪和匹配的第一个撇号和最后一个之间的一切。

这应该匹配任何不是撇号的东西。

 ('[^']+') 

另一种select是尝试非贪婪的比赛。

 ('.+?') 

你尝试过一个非贪婪的版本,例如('.+?')

通常有两种匹配模式 (或两组量词),最大(贪婪)和最小(非贪婪)。 第一个将导致最长的匹配,后者最短。 你可以在Perl Cookbook (6.15节)中阅读(尽pipe在perl上下文中)。

尝试:

 ('[^']+') 

^表示包括除了方括号内的字符以外的每个字符。 这样,它不会匹配'a' b 'a'因为中间有一个' ,所以相反它会给'a'

你需要逃避qutoes:

 \'[^\']+\' 

编辑:嗯,我想我会这个答案取决于你使用的是什么郎/系统。