Java:regex-一般的组

Java:regex-一般的组,java,regex,Java,Regex,假设我有一些regex=“…(group1)…|…(group2)…” 正如你所看到的,我不知道如何得到我的结果。我在找matcher.getResultedGroup之类的东西。。谁能解释一下我该怎么做 如果你有其他建议来扩大我的知识面,我很乐意听你的 您可以使用单个捕获组,其中包含非捕获组: ((?:group1)|(?:group2)) 您可以使用单个捕获组,其中包含非捕获组: ((?:group1)|(?:group2)) 请参阅Javadoc和 也许像这样的事情会奏效: wh

假设我有一些regex=“…(group1)…|…(group2)…”

正如你所看到的,我不知道如何得到我的结果。我在找matcher.getResultedGroup之类的东西。。谁能解释一下我该怎么做

  • 如果你有其他建议来扩大我的知识面,我很乐意听你的

您可以使用单个捕获组,其中包含非捕获组:

((?:group1)|(?:group2)) 

您可以使用单个捕获组,其中包含非捕获组:

((?:group1)|(?:group2)) 
请参阅Javadoc和

也许像这样的事情会奏效:

while(matcher.find()) {
    String groupMatch = matcher.group(groupIndex)
}
matcher.find将尝试查找与正则表达式匹配的字符串的所有子序列(子字符串)。

请参阅Javadoc和

也许像这样的事情会奏效:

while(matcher.find()) {
    String groupMatch = matcher.group(groupIndex)
}
matcher.find将尝试查找与正则表达式匹配的字符串的所有子序列(子字符串)。

迭代
groupNum
不是
0
,而是从
0
开始的,这就是您要寻找的(假设它是您的整个表达式)

否则,将整个子表达式包含到捕获组中:
((组1)|(组2)…)
,并比较内部组和外部组的起始索引。

迭代
groupNum
不是
0
,而是从
0
开始的,这就是您要寻找的(假设它是您的整个表达式)


否则,将整个子表达式包含到捕获组中:
((组1)|(组2)…)
,并将内部组的起始索引与外部组的索引进行比较。

如果不想进入子组,则无需进入子组。实际匹配在组0中:
Matcher.group(0)
或等效的
Matcher.group()
。请注意,您可能希望使用非捕获组来保护资源。

如果不想,您不需要进入子组。实际匹配在组0中:
Matcher.group(0)
或等效的
Matcher.group()
。请注意,您可能希望使用非捕获组来保护资源。

我应该提到我对regex非常陌生,需要一段时间才能理解所有内容请参阅我的最新评论和其他评论,他们中的每一个人都很好:)我应该提到我对regex很新,并且需要一段时间才能理解所有的事情。看我的最新评论和其他评论,他们中的每一个人都很好:)这就是我一直在做的。。虽然它看起来很有线,但它确实对(int m=1;m)起作用(但不完美)。这就是我一直在做的。虽然它看起来很有线,但它对(int m=1;m)起作用(但不完美)(int m=1;m不需要在完整的regexp周围放置parantesses,完整regexp的实际匹配在组0中。是的,此示例作为更大表达式的一部分是有意义的。不需要在完整的regexp周围放置parantesses,完整regexp的实际匹配在组0中。是的,此示例作为组的一部分是有意义的更大的表达。嗨,波波科,这个问题没有被接受的答案有什么原因吗?嗨,波波科,这个问题没有被接受的答案有什么原因吗?