Почему мой отрицательный взгляд не работает в регулярных выражениях? - PullRequest
0 голосов
/ 23 февраля 2019

Вот мое регулярное выражение:

\w*\d{6,}\.*\-*\d|[a-z]{2}\-{1}[0-9]+\-\d*

А вот и мой стог сена

+ 19185555555: Это Скотт, с любой компанией в Талсе, в порядке.Нам нужен испанский переводчик для встречи в 11:00 в любом месте в пятницу, 25 января 19 года.444 S Ave, Талса.Фамилия Макдоуэл.Контакт Кэтрин Зета Джонс 918-555-5555.Направление # 1973756 11:28

Я сделал регулярное выражение, чтобы оно не захватывало телефонные номера, но я нахожу эти противные номера, в которых нет пробелов и тире.К счастью, они могут быть идентифицированы в моих случаях, потому что им предшествует "+".

Я просто хотел сопоставить реферальный номер, но он совпал с обоими, и вывел первое совпадение.

Я пробовал смотреть отрицательно, но он не работает ни с одним тестером регулярных выражений.что не так с моим отрицательным взглядом позади?

(?<!\+)\w*\d{6,}\.*\-*\d|[a-z]{2}\-{1}[0-9]+\-\d*

1 Ответ

0 голосов
/ 23 февраля 2019

Вы можете добавить \d к набору символов в вашем отрицательном виде, чтобы избежать совпадения чисел после числа, следующего за знаком +:

(?<![+\d])\w*\d{6,}\.*\-*\d|[a-z]{2}\-{1}[0-9]+\-\d*

Демонстрация: https://regex101.com/r/8Kwqys/1

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