Я хочу найти длинную форму из короткой формы из данной строки с помощью регулярного выражения - PullRequest
0 голосов
/ 07 августа 2020

У меня есть предложение, в котором мне нужно извлечь последнюю часть совпадающей строки

https://regex101.com/r/CRR5zi/2

То есть в приведенном выше примере требуется только выражение для выбора последнего события, а не первого «Универсальная последовательная шина»

U.* S.* B.* 

, используемая для включения всех типов коммуникационных услуг на универсальной последовательной шине, является примером здесь

Я пробовал с

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Вы выбираете любой символ, следующий за U, S или B.

Измените свое регулярное выражение на менее жадное (и, возможно, удалите флаг /i, чтобы выбрать только буквы верхнего регистра)

(U\w+ S\w+ B\w+)

Пример

1 голос
/ 07 августа 2020

Просто сравните их все (глобально) и возьмите последнее совпадение из результата.

const your_regex_pattern = /U.*?S.*?B.*?(?=\s|$)/g;

Это то, что вам нужно? (Обратите внимание, что нечувствительность к регистру была удалена, иначе вам нужно избегать сопоставления «ничего» с «.», Вместо этого сопоставить только непробельные символы), например:

const your_insensitive_regex_pattern = /U[\S]*?\s*S[\S]*?\s*B[\S]*?(?=\s|$)/gmi;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...