为什么输出[gh] {2}

时间:2013-12-01 14:49:55

标签: java regex

[GH] {2}
查找g或h的2个实例,这就是我阅读上述正则表达式的方法:

  

输入你的正则表达式:[gh] {2}
  输入要搜索的输入字符串:ghkkk
  我发现文本“gh”从索引0开始,到索引2结束。

根据我的理解,我如何阅读上面的正则表达式,输入字符串(ghkkk)不应该有任何匹配,因为没有g或h的两个实例。然而,它找到了匹配。

我使用了program given on oracle official website

有人可以解释我为什么得到这场比赛吗?

3 个答案:

答案 0 :(得分:2)

[gh]{2}[gh][gh]的简写。 ghkkk匹配[gh][gh](第一组g,第二组h),因此匹配其简写[gh]{2}

仅匹配gghh使用gg|hh(最短的正则表达式)。

答案 1 :(得分:1)

我担心你的解释不太正确。正则表达式匹配gghhghhg

要仅匹配gghh,请使用gg|hh

答案 2 :(得分:0)

要匹配gghh,请使用:

  • gg|hh

enter image description here


  • g{2}|h{2}
    enter image description here