gpt4 book ai didi

java正则表达式忽略字符串末尾的n组

转载 作者:太空宇宙 更新时间:2023-11-04 07:28:36 25 4
gpt4 key购买 nike

我有以下类型的字符串要解析。字符串可以包含 n 个组。但我只对第五组和第六组感兴趣。xxxx-xxx-xxxx-xxx-xxxx-xxx-xx-xxx-xxx

目前正在研究以下类型的表达式:

(.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])[-(.*)]*

if (matcher.matches()) {
System.out.println(matcher.group(5));
System.out.println(matcher.group(6));
}

我认为使用我的正则表达式,我想知道如何忽略其余组,有什么建议吗?目前,如果字符串与精确的组匹配,则会产生结果,但它包含更多不匹配的组!

最佳答案

您的正则表达式不匹配任何额外的组,因为您在末尾使用字符类 [] 而不是组 ()。将其更改为

(.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])(-.*?)*

另请注意,如果您的意思是 N[Y|N] 处的 NY 或 NN,则应将其更改为 N(Y|N),因为使用字符类 [] 也会使其与 N| 匹配。

关于java正则表达式忽略字符串末尾的n组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18130106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com