Нужно регулярное выражение для строки, которая должна иметь как числовые, так и буквенные символы

Может ли кто-нибудь сказать, как я могу написать 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]*$

Он ищет либо несколько цифр, за которыми следуют несколько символов; ИЛИ несколько символов, за которыми следуют несколько цифр. Тогда может быть любое сочетание символов и цифр или ничего.