RegEx查找两个或多个连续字符


97

我需要确定一个字符串是否包含两个或多个连续的字母字符。[a-zA-Z]并排两个以上。例:

"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid

Answers:


203

这应该可以解决问题:

[a-zA-Z]{2,}

可能{2}没有逗号也应该起作用,对吗?
亚历山大·米尔斯

17
亚历山大,仅需清除以下几点:{2}表示长度必须为2。{2,}表示表达式的长度可以为=> 2
Shmarkus

1

我曾经使用过的Personnaly(作为nooby):

[0-9][0-9]+.

但是,来自西蒙的那个更好!= D


0

[a-zA-Z] {2,}不适用于两个或多个相同的连续字符。为此,您应该捕获任何字符,然后像这样重复捕获:

(。)\ 1

括号捕获。代表任何字符,\ 1是捕获的结果-基本上是寻找该字符的连续重复。如果要具体说明要查找的相同连续字符,只需用字符类替换“任何字符”即可。

([a-zA-Z])\ 1

查找连续重复的小写或大写字母。与“ abbc123”而非“ abc1223”匹配。为了在它们之间留一个空格(即ab),请在正则表达式中在捕获的字符和重复字符之间包括一个可选的空格...

([az] AZ])\ s?\ 1


我很确定您误解了这个问题,因为它大约是两个字母。您的正则表达式适用于不同的情况:两个相似的字母!
csabinho

-4

我很确定您可以使用[Az]而不是[a-zA-Z]来获取大小写的小写字母 http://www.w3schools.com/jsref/jsref_obj_regexp.asp


22
-1:这是为什么您不应该使用w3schools作为参考或教育的另一个绝佳示例。[A-z]比字母更匹配。具体来说,它还匹配方括号,反斜杠,脱字号,下划线和反引号。
蒂姆·皮茨克

确实,@ TimPietzcker所说的是正确的。他提到的字符介于Z和之间a,因此(错误地)包含在这种模式中。我第二个建议:不要使用w3schools!这样有很多微妙的坏信息。
安德鲁·巴伯

5
最初在Stack上大呼小叫,它比我想象的要刺痛得多。因此,通过包含Az,它可以匹配[AZ一堆我不想要的东西和az]大写字母与非大写字母之间的所有字符?danshort.com/ASCIImap
凯文(Kevin)

所以我可以说类似[!-+]吗?还有一种方法可以访问正则表达式中的字符代码,例如[65-90],它与[AZ]相同?
凯文(Kevin)

@Kevin[65-90]将匹配5- 9(也包括6)和0
csabinho
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.