正则表达式从包含不同单词的字符串中获取第 n 个单词,这些单词由分号 (;) 分隔

Regex to get a nth word from a string which is containing different words which are separated by semicolon(;)

我有一个字符串(操作日志信息),它是不同单词的组合,并且都是由分号(;)操作的。我想提取23个词告诉我客户是否有资格进行操作。

我是正则表达式的新手,你能帮我找出正则表达式吗? 我将在 Dynatrace 工具中使用此正则表达式,其中 JAVA 正则表达式函数将不起作用

字符串示例 1: 57423543521;314743352134;来源;2 月 2 日星期二 12:32:44 BST 2019;资格;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; ;;未确认;;;未执行;确定;;未知

===> 字符串上方的第 23 个单词是 'N'(在 'DFD4546;Adult' 之前,标记为 BOLD

字符串示例 2: 435435435435;345435435657;来源;2 月 2 日星期二 14:42:20 BST 2019;资格;PQR490;MyChannel;DUMBRE;2;LK345029;CDGPNQ;2019-04-02T21:15:00.000Z;TT;; ;W;Y;;N;34243DFGDFG32434;ProfNitin FDGDFDumbre;N;<strong>Y</strong>;;成人;;MYTICKET;345435435;;;;N;Y;;Y;;N;Y; ;未确认;;;已清除;确定;;未知

===> 字符串上方的第 23 个单词是 'Y'(在 ';Adult' 标记为 BOLD 之前)

提前致谢

您可以使用此正则表达式准确获取第 23 个单词,并从组 1 中捕获它

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

此处外部非分组括号匹配零个或多个除 ; 之外的任何字符,使用 [^;]* 后跟 ; 并且整个匹配完全匹配 23 次使用 {23} 量词,其中使用 ([^;]*)

在组 1 中捕获最后一场比赛

Demo