2013-07-25 46 views
2

我在寻找一个perl正则表达式,它匹配只包含相同字母的字符串。正则表达式匹配重复的字符?

应该匹配aaaaaaaaaaaaaa等,但不aabbabbaaaabaaaabaa等。

我知道我可以使用\1来回指/(.)\1/这样的第一个字符,但那也会匹配aabb。有什么建议?

+3

看看到的锚开头和结尾都有帮助 – Birei

+0

'.'可以匹配任何字符,如果你使用/ s标志(把输入作为一行处理),我敢肯定它匹配空格。你想,为小写字母使用'[az]'或'[[:lower:]]',对于任何一种情况,它都是'[[:alpha:]]或'[a-zA-Z]'和[ AZ]'或'[[:upper:]]' – chilemagic

回答

5

这似乎为我工作:

/^(.)\1*$/ 

^字符的字符串开始处匹配,而$结束匹配。

整个表达式可以翻译成:“在字符串的开头,匹配任何字符,然后任意数量的同一性质的,其次是字符串的结尾