регулярное выражение с положительным взглядом - PullRequest
0 голосов
/ 27 июня 2019

Вот ссылка на regex101.com: https://regex101.com/r/fu2JkM/1

Каждый пример, кроме 100 CCC or 200 DDD keyword 300 someotherword, работает нормально: он должен найти последнее число , за которым следует A или BB илиCCC или DDD до ключевое слово .

В приведенном выше примере должно быть найдено ключевое слово 200 DDD , поэтому group1 = 200 и group2 = DDD , за которым сразу следует ключевое слово.Это не работает, потому что после ключевое слово есть какое-то число, но я бы хотел, чтобы эти случаи также работали.Может кто-нибудь помочь?

РЕДАКТИРОВАТЬ: Текущее регулярное выражение: (?:.*[^\d\n])?([0-9][0-9,.]*)(?:\s*(A|BB|CCC|DDD))?\s+keyword Примеры с ожидаемыми результатами:

200A keyword -> 200A
200BB keyword -> 200BB
200 BB keyword -> 200 BB
100 QQQ or 200 BB keyword -> 200 BB
100 CCC or 200 DDD keyword -> 200 DDD
100 CCC or 200 DDD keyword -> 200 DD
100 CCC or 200 DDD keyword 300 someotherword -> 200 DDD
100 CCC or 200 DDD keyword someotherword -> 200 DDD
1.5 CCC keyword -> 1.5 CCC
0,25 CCC keyword -> 0,25 CCC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...