有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么输出[gh]{2}

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

Enter your regex: [gh]{2}
Enter input string to search: ghkkk
I found the text "gh" starting at index 0 and ending at index 2.

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

我用了program given on oracle official website

有人能解释一下我为什么得到这场比赛吗


共 (3) 个答案

  1. # 1 楼答案

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

    要只匹配gghh,请使用gg|hh(最短的regexp)

  2. # 2 楼答案

    要匹配gghh,请使用:

    • gg|hh

    enter image description here


    • g{2}|h{2}
      enter image description here
  3. # 3 楼答案

    恐怕你的解释不太正确。正则表达式匹配gghhghhg

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