我有一个非常简单的正则表达式,类似于:
HOHO.*?_HO_
有了这个测试字符串...
fiwgu_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO___HO_fbguyev
- 我希望它只匹配
_HOHO___HO_
(最短匹配,非贪婪) - 相反,它匹配
_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO___HO_
(最长匹配,看起来很贪婪)。
为什么?我怎样才能让它匹配最短的匹配?
添加和删除?
给出相同的结果。
编辑- 更好的测试字符串显示为什么[^HOHO]
不起作用:fiwgu_HOHO_HOHO_HOHOrgh_HOHO_feh_HOHO_H_O_H_O_HO_fbguye
我能想到的只是它可能匹配多次 - 但只有一个匹配_HO_
,所以我不明白为什么它不采用以 结尾的最短匹配,而_HO_
丢弃其余的。
我浏览了所有我能找到的标题为“非贪婪正则表达式贪婪”的问题,但它们似乎都有其他问题。