有效的正则表达式在 Sublime Text 中不正确匹配

Valid regular expression not correctly matching in Sublime Text

我正在尝试捕获此列表中单引号内的每个名称:http://pastie.org/private/lnuqeqkxenncbyjp81bew

例如,前几场比赛将是:(Dba) (Uk) Co.,Inc.
来自 (2, '(Dba)'), (2, '(Uk)'), (2, 'Co.,Inc.'),

我相信这个正则表达式应该正确匹配所有内容 .*\'(.*)\'\),

当我在 Sublime Text 2 中尝试此操作时,我没有找到任何匹配项。如果我尝试使用 https://regex101.com/#pcre, I get a match only on the first line, but not on every line. If I try on http://regexpal.com/,我会在每一行上找到一个匹配项(这是我所期望的)。

我不确定 Sublime Text 2 使用的是哪种正则表达式,或者我应该如何更改我的正则表达式以使其找到所有匹配项。

您可以使用以下修复方法:

.*'\K(.*)(?='\)(?:,|$))

你不需要转义单撇号,我添加了 \K 来省略匹配的开头和前瞻来排除结尾。 (?:,|$) 是为了确保最后一个条目匹配。

或者,如果您打算用 </code> 替换,则直接使用您的:</p> <pre><code>.*'(.*)'\)(?:,|$)

好吧,谈到优化正则表达式,你可以在这里使用否定字符class:

.*'([^']*)'\)(?:,|$)

.*'\K([^']*)(?='\)(?:,|$))

这些速度更快。