我有一个需要使用正则表达式提取的字符串。最好只使用一个正则表达式。由于它与9个预先存在的Regex一起循环使用
字符串模式将始终在{4,8} A-Z0-9之间。随后是
1 X AZ或2 x A-Z0-9或另一个{4,8} A-Z0-9
例如:
“A1B1C1 ABCD E FGHI JK”
我希望这能返回三场比赛。
A1B1C1 & ABCD E & FGHI JK
我一直遇到麻烦,因为第一个比赛是A1B1C1 A,而不是单独的比赛。
提前致谢。
您可以使用带有单词边界和交替的可选部分来匹配[A-Z0-9]{2}
或[A-Z]
\b[A-Z0-9]{4,8}(?:\h+(?:[A-Z0-9]{2}|[A-Z]))?\b
\b
字边界[A-Z0-9]{4,8}
匹配4-8次A-Z0-9(?:
非捕获组
\h+
匹配1个以上水平空白字符(?:[A-Z0-9]{2}|[A-Z])
匹配2个A-Z0-9或1个AZ)?
关闭非捕获组并将其设置为可选\b
字边界在Java中
String regex = "\\b[A-Z0-9]{4,8}(?:\\h+(?:[A-Z0-9]{2}|[A-Z]))?\\b";
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句