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
有人能解释一下我为什么得到这场比赛吗
# 1 楼答案
[gh]{2}
是[gh][gh]
的简写ghkkk
匹配[gh][gh]
(g
在第一组,h
在第二组),因此它匹配其缩写[gh]{2}
要只匹配
gg
和hh
,请使用gg|hh
(最短的regexp)# 2 楼答案
要匹配
gg
或hh
,请使用:gg|hh
或
g{2}|h{2}
# 3 楼答案
恐怕你的解释不太正确。正则表达式匹配
gg
、hh
、gh
和hg
要仅匹配
gg
或hh
,请使用gg|hh