Нужно регулярное выражение для строки, которая должна иметь как числовые, так и буквенные символы
Может ли кто-нибудь сказать, как я могу написать Regex
для строки, чтобы строка должна и должна иметь символы alpha+numeric
(то есть буквы и цифры).
Действительно:
a123sss
12dfgfd
Invalid:
aaaa
1111
Я пробовал это ^[a-zA-Z0-9]*$
, но он всегда дает true
.
EDIT: это также верно: 123-abc
Ответы
Ответ 1
Звучит так, как будто вы говорите, что строка требует как буквенных, так и числовых символов: она не может иметь только буквенные символы или только числовые символы.
Таким образом, строка должна быть:
- Один или несколько цифровых символов, за которыми следует один или несколько буквенных символов, за которыми следуют 0 или более буквенно-цифровых символов
или
- Один или несколько буквенных символов, за которыми следуют один или несколько числовых символов, за которыми следуют 0 или более буквенно-цифровых символов
Таким образом, регулярное выражение, которое работает,
^([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]*$
Ответ 2
Несколько возможных хороших решений уже опубликованы, но поскольку ОП не указывает, что такое альфа и какие числовые значения, возможно, упрощенный ответ:
^(\d+\p{L}+|\p{L}+\d+)+$
где:
-
\d
- любая цифра
-
\p{L}
- любая буква, включая буквы с акцентом, такие как à, ç и т.д.
-
(..)
для группировки, чтобы предотвратить замечание M42, спасибо! (или повторите ^ и $)
Это будет соответствовать всем: ßğł123ħdža3b, 123abc. 1a2b3c, ȬȭɓʥɶÂË32
и т.д.
Ответ 3
Я не знаю, поддерживает ли asp.net lookahead, но если это так, это регулярное выражение выполняет задание:
^(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9]+$
Ответ 4
Если вы просто хотите убедиться, что он содержит как числа, так и буквы (и вам все равно, включают ли они и другие символы), вы можете использовать:
/\[0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+/
Ответ 5
Это работает:
^(\d+[A-Za-z_-]+|[A-Za-z_-]+\d+)[A-Za-z_-\d]*$
Он ищет либо несколько цифр, за которыми следуют несколько символов; ИЛИ несколько символов, за которыми следуют несколько цифр. Тогда может быть любое сочетание символов и цифр или ничего.