Поиск цены с валютой в тексте с RegEx - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно сопоставить текст, который содержит цену с валютой, но без двойной валюты.

Я пробую это регулярное выражение:

(\d+[\.,]*\d*)([eurEUR]{3})[^eurEUR]{3}

Вот несколько примеров того, как это выражениеработает и как я хочу работать.

1. Выражение работает правильно .Потому что другая валюта находится сразу за валютой.

some text before 25,00EUR EUR some text after with

2 . Выражение не работает правильно .Первый символ после "EUR" - это "e", поэтому выражение не соответствует.

some text before 25,00EUR end some text after with

Как отредактировать выражение, которое не соответствует двойному EUR, но соответствует слову, начинающемуся с буквы "e", "u" или "r"?

1 Ответ

1 голос
/ 25 июня 2019
  1. Использование альтернативных литералов вместо наборов с повторными счетами [eurEUR] -> (eur|EUR)
  2. Если вы хотите убедиться, что за валютой не следует строка, используйте отрицательный прогноз: (?!=eur|EUR)

Конечное регулярное выражение:

(\d+[\.,]*\d*)(eur|EUR) (?!=eur|EUR)

Демо

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