Регулярное выражение для буквенно-цифровой (Unicode) с определенной длиной - PullRequest
2 голосов
/ 10 сентября 2009

Действительные должны содержать как минимум одну цифру или букву (длиной от 6 до 15 символов) в любом порядке. e.x.

11111a

111a11

a11111

Я нашел похожие посты в SO, но они, похоже, вышли из строя ...

Ответы [ 4 ]

3 голосов
/ 10 сентября 2009

Это будет соответствовать от 6 до 15 символов (букв или цифр), кроме всех цифр или всех букв:

^(\p{L}|\p{N}){6,15}(?<=\p{L}.*)(?<=\p{N}.*)$

aaaaa1aaaa совпадений

1111111a11 совпадений

aaaaaaaaaa не соответствует

1111111111 не соответствует

0 голосов
/ 10 сентября 2009

Похоже, это работает:

^(?=.*[a-zA-Z].*)\w{6,15}(?<=.*\d.*)$

А вот и тестовые случаи:

http://regexhero.net/tester/?id=83761a1e-f6ae-4660-a91f-9cdc4d69c7b3

По сути, моя идея заключалась в том, чтобы сначала использовать позитивный взгляд, чтобы убедиться, что в него включена хотя бы одна буква. Затем я использую \ w {5,16} в качестве простого средства обеспечения того, чтобы я соответствовал правильному количеству символов (и чтобы они были буквенно-цифровыми). И затем в конце я использую положительный взгляд назад, чтобы убедиться, что строка содержит хотя бы одно число.

0 голосов
/ 10 сентября 2009

Для этого вам понадобится предварительный запрос.

Вы можете создать токен регулярного выражения, который будет пытаться найти совпадение, но не будет "потреблять" входную строку. Вы можете следовать за этим простым 2-м запросом, который проверит длину вашей строки.

Вы можете объединить их, чтобы создать нужный запрос.

Синтаксис для .Net версии движка регулярных выражений будет выглядеть примерно так:

Это регулярное выражение написано только в этом чате и не проверено ... так что помилуйте:)

Я не уверен, что такое "Символ или буква", но я предполагаю, что вы имеете в виду "a-Z"

(? =. * [A-Za-Z]). {6,15}

0 голосов
/ 10 сентября 2009

что должно сделать это: \ w {6,15} если вы хотите сопоставить всю строку: ^ \ w {6,15} $

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...