RegEx для поиска двух или более последовательных символов

98

Мне нужно определить, содержит ли строка два или более последовательных альфа-символа. Два или более [a-zA-Z]рядом. Пример:

"ab" -> valid
"a1" -> invalid
"a b" -> invalid
"a"-> invalid
"a ab" -> valid
"11" -> invalid
LRB
источник

Ответы:

206

Это должно помочь:

[a-zA-Z]{2,}
Саймон
источник
Можно {2}без запятой тоже должно работать, правда?
Александр Миллс
17
Александр, чтобы прояснить кое-что: {2} означает, что длина должна быть 2. {2,} означает, что длина выражения может быть => 2
Шмаркус
1

Лично (как новичок) я использовал:

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

Но тот, что от Саймона, намного лучше! = D

Mc Kazou
источник
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
Ой, первый удар по Стэку, он жалит больше, чем я думал. Таким образом, включение Az соответствует всему, от [AZ - куча вещей, которые мне не нужны, и az] всем символам между заглавными и не заглавными буквами? danshort.com/ASCIImap
Кевин,
так что я могу сказать что-то вроде [! - +]? Также есть способ получить доступ к кодировке внутри регулярного выражения, например [65-90], который будет таким же, как [AZ]?
Кевин
@Kevin [65-90]будет соответствовать 5- 9(что также включает 6) и 0!
csabinho