2016-02-10 4 views
-2

Я использую регулярное выражениеРегулярного выражения не соответствует шаблону

/[A-Za-z]{3}(P|p){1}[A-Za-z]{1}\d{4}[A-Za-z]{1}$/ 

Для подходящего шаблона:

3 alphabets A to Z 
1 letter to be exactly P 
1 letter A to Z 
4 digits 
1 letter A to Z 

Его работает для всех сценариев, но неудача в одном случае, когда мы вступаем текст

awdejhjhpr5467y 

вы можете рассмотреть возможность его проведения HERE

Принимает более 3 алфавитов в начале. Что не хватает в выражении Кто-то может помочь!

+0

'/^[A-Za-Z] { 3} (P | p) {1} [A-Za-z] {1} \ d {4} [A-Za-z] {1} $/' –

+0

Я предполагаю, что это отдельная строка так что рядом с вашим ожидаемым шаблоном нет соседних символов небелого пробела? – jusopi

+1

['/^[az]{3}p[az]\d{4}[az]$/i'](https://regex101.com/r/xG6lP8/2) – Tushar

ответ

1

Отсутствует ^ в вашем регулярном выражении, в противном случае это не будет соответствовать совпадению с начала строки. Кроме того, нет необходимости в {1} и вы можете уменьшить регулярное выражение, добавив i флаг, который игнорировать регистр

/^[a-z]{3}p[a-z]\d{4}[a-z]$/i 

Regex explanation here

Regular expression visualization

+0

@VinodLouis Вы также забыли, что есть флаг 'i', а' {1} 'не требуется. – Tushar

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