Java正则表达式问题

詹姆斯·哈德森(James Hudson):

我有一个需要使用正则表达式提取的字符串。最好只使用一个正则表达式。由于它与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演示

在Java中

String regex = "\\b[A-Z0-9]{4,8}(?:\\h+(?:[A-Z0-9]{2}|[A-Z]))?\\b";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章