正则表达式识别连续的偶数个字符

时间:2014-10-16 12:54:31

标签: regex vbscript

我试图想出一个正则表达式来识别字符串中给定字符的2,4,6,8,(等等)的实例。

我正在使用vbscript正则表达式引擎。

在我的特定情况下,我希望删除/替换字符串中偶数个连续单引号字符的实例。

我似乎无法理解如何使其足够健壮以找到任何2的倍数的实例而无需对其进行硬编码。

在非正则表达式编码中,我会找到2个或更多个连续单引号的实例,循环遍历每个实例,并将单引号的数除以2.如果它均匀分配,则匹配,如果不匹配,那不是一场比赛。我需要帮助将该逻辑转换为更简单的正则表达式。

示例:

"it''s a lovely day"       --> should find one match group
"it's a lovely day"        --> no match
"it'''s a lovely day"      --> no match
"it''''''''s a lovely day" --> match

提前致谢。

1 个答案:

答案 0 :(得分:2)

您正在寻找的表达方式是:

[^']('')+[^']

它搜索偶数个单引号字符(('') =两个单引号,+ =至少发生一次),两个字符之间不是单引号({{1} } =由任何字符组成的字符类,但不是单引号。

以下是在线演示:http://regex101.com/r/wV6vE5/1