Regex для получения n-го слова из строки, содержащей разные слова, разделенные точкой с запятой (;) - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть строка (Информация о регистрации операций), которая представляет собой комбинацию разных слов, и все они обрабатываются точкой с запятой (;). Я хочу извлечь 23 слова, которые говорят мне, что клиент имеет право на операцию или нет.

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

Пример строки 1: 57423543521;314743352134;Source;Tue Apr 02 12:32:44 BST 2019;ELIGIBILITY;ABC345;MyChannel;DUMBRE;1;RR87835;NM;2019-04-02T07:20:00.000Z;VV;;;M;N;XCB234657;;24234SDF4435345;MrNitinDumbre;N;<strong>N</strong>;DFD4546;Adult;;MYTICKET;4535435435;;657657655;PP;N;Y;;Y;;N;;;Unconfirmed;;;Not Performed;OK;;Not Known

===> 23-е слово над строкой - 'N' (перед 'DFD4546; Взрослый', помечено как BOLD )

Пример строки 2: 435435435435;345435435657;Source;Tue Apr 02 14:42:20 BST 2019;ELIGIBILITY;PQR490;MyChannel;DUMBRE;2;LK345029;CDGPNQ;2019-04-02T21:15:00.000Z;TT;;;W;Y;;N;34243DFGDFG32434;ProfNitin FDGDFDumbre;N;<strong>Y</strong>;;Adult;;MYTICKET;345435435;;;;N;Y;;Y;;N;Y;;Unconfirmed;;;Cleared;OK;;Not Known

===> 23-е слово над строкой - 'Y' (перед '; Adult', помеченным как BOLD )

Заранее спасибо

1 Ответ

1 голос
/ 02 апреля 2019

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

(?:([^;]*);){23}

Здесь внешняя не группирующая круглая скобка соответствует нулю или более любому символу, кроме ; с использованием [^;]*, за которым следует ;, и все это соответствует ровно 23 раз с использованием {23} квантификатора, где фиксируется последнее совпадение в группе 1 с использованием ([^;]*)

Демо

...