java正则表达式忽略字符串末尾的n组
我要分析以下类型的字符串。字符串可以包含n个组。但我只对第五组和第六组感兴趣。 xxxx xxxx xxxx xxxx xxxx xxx xxx xxx xxx xxx xxx 目前正在处理以下类型的表达式:java正则表达式忽略字符串末尾的n组,java,regex,Java,Regex,我要分析以下类型的字符串。字符串可以包含n个组。但我只对第五组和第六组感兴趣。 xxxx xxxx xxxx xxxx xxxx xxx xxx xxx xxx xxx xxx 目前正在处理以下类型的表达式: (.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])[-(.*)]* if (matcher.matches()) { System.out.println(matcher.group(5)); Syste
(.*)-(.*)-(.*)-(.*)-(.*)-(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 |
。您的正则表达式不匹配任何额外的组,因为您在末尾使用的是字符类[]
。换成
(.*)-(.*)-(.*)-(.*)-(.*)-(SY[A-Z0-9]+)-(N[Y|N])(-.*?)*
另外,请注意,如果您在
N[Y | N]
处指的是NY或NN,您应该将其改为N(Y | N)
,因为使用字符类[]
也会使其匹配N |
。您所说的“忽略”是什么意思?我已经编辑了问题。您所说的“忽略”是什么意思?我已经编辑了问题。