2013-02-15 61 views
0

如何在visual-studio中使用正则表达式找到重复的字符?

'abcdeeeeefghi'重复'[eeeee]'应该匹配

'abbdefgiijklmmn'重复'[bb]''[ii]''[mm]'应符合

'abcedefegehe'没有匹配在这种情况下

+0

“(\ p {L})(?= \ 1)” – Martin 2013-02-15 10:43:09

+0

将其更改为:'“(\ p {L})\ 1 *”'。你需要使用量词,以超过2个长度的重复。而且你不需要预见,因为它只会返回第一个字符。要返回完整序列,只需删除预览。 – 2013-02-15 10:44:08

+0

哪个版本的Visual Studio? – 2013-02-15 10:48:29

回答

2

Visual Studio 2010,使用以下正则表达式:

{:c}\1+ 

(花括号中VS2010用于捕获组而不是标准的括号,并且:c表示字母字符)。

+0

谢谢你,这很快。 – Martin 2013-02-15 11:00:42

0

我想(.)\1+将做的工作。

它将一个模式与一个字符(任何字符)匹配,后面至少出现一次。 \1用于反向引用第一个捕获组(字符)。

+0

不,这不是VS在2010版之前实现正则表达式的方式。 – 2013-02-15 10:54:46

1
{:c}\1+ 

必须使用+,不**将匹配零个或多个,从而{:c}\1*将匹配单个发生。

:c用于指定字符类,因此您不匹配重复的空格或标点符号。

+0

VS 2010中不支持这个功能。 – 2013-02-15 10:51:47

+0

啊我没有阅读2010年的部分...我将编辑 – protist 2013-02-15 10:53:37

+0

我编辑了VS 2010版。 – protist 2013-02-15 10:56:13