2016-09-28 6 views
0

У меня есть специальный код, который всегда 7 символов. Первый символ должен всегда содержать букву [A-Za-z].Строка регулярного выражения содержит хотя бы один символ

Ex: 12**A**5667 или **A**2156903 ИЛИ 2**A**14312

Я знаю, что могу сделать это с ^\d{2}[A-Za-z]\d{4}|[A-Za-z]\d{2}\d{4}|\d[A-Za-z]\d{5}$ , но есть способ, что я могу упростить этот код с функцией упреждением или что-то?

ответ

0

Попробуйте это:

^(?=\d{0,2}[A-Za-z])[\dA-Za-z]{3}\d{4}$ 

Он использует предпросмотр, чтобы гарантировать, что это письмо не более двух цифр от начала. Затем он снова запускает строку и проверяет, что она имеет 3 цифры или буквы в начале, а затем 4 цифры.

+0

Благодаря этим работало для меня. Когда я положил знак доллара в конец^(? = \ D {0,2} [A-Za-z]) [\ dA-Za-z] {3} \ d {4} $, он НЕ БУДЕТ MATCHING – tomsam

+0

@tomsam Я забыл '' '. – redneb

2

Вы можете найти полезное что-то вроде этого:

\d{0,2}[A-Za-z]\d{4,6} 

А затем, чтобы проверить, если длина вашей ожидаемой длина

+0

спасибо за регулярное выражение. Он отлично работает, но я думаю, что функция lookhhead будет работать лучше для моего случая – tomsam

Смежные вопросы