RegExp не совпадает по пробелу и тексту после шаблона - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть многострочный шаблон, при котором я сканирую строку. Цель состоит в том, чтобы сопоставить последовательность чисел, составляющих номер счета. Если строка / строка начинается с http | https, шаблон может игнорировать строку. Я игнорирую чувствительность к регистру по всей схеме. Я создаю границу только вокруг цифры 1039 *. Число цифр c может иметь длину от 12 до 19 цифр.

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

(?mi)^(?!https?:).*(\b(50[0-9]{10,17}))$

Примеры тестов:

  • 501234567890
  • Привет, Боб, вот что ты просил: 501234567890. Ты его получил?
  • Привет, Стивен, вот что ты просишь 501234567890 Ты его получил?
  • http: /// www.example.com/appid=501234567890 (? # Это следует игнорировать)
  • https://www.example.com/appid=501234567890 (? # Это следует игнорировать)
  • Это номер моей компании: 501234567890
  • 501234567890

Вторая и третья строки не совпадают. Строка шестая совпадает, потому что после чисел c нет пробела. Строка семь не совпадает, потому что перед цифрами c имеются пробелы.

Я пробовал [^ a-zA-Z \ s] до и после шаблона цифр c, но не работает ,

Будем весьма благодарны за предложения и рекомендации.

Спасибо,

Расс

1 Ответ

1 голос
/ 04 апреля 2020

Просто замените $ границей слова \b:

(?mi)^(?!https?:).*(\b(50[0-9]{10,17}))\b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...