有效的正则表达式在 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([^']*)(?='\)(?:,|$))
这些速度更快。
我正在尝试捕获此列表中单引号内的每个名称: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([^']*)(?='\)(?:,|$))
这些速度更快。