2.asdfasdfasdf
3
2
以上是我试图与此正则表达式匹配的字符串 - \ n1。(。+)\ n2。 所以,我想要做的是匹配1.和下一个2.但我的正则表达式仍然匹配最后的2.我使用'单行'修饰符,即点匹配此正则表达式上的所有。我做错了什么?
答案 0 :(得分:4)
将(.+)
更改为(.+?)
,这将在“不情愿量词”下的Pattern类的JavaDoc中介绍。
如果我们看一下official tutorial,我们可以在“贪婪,不情愿和占有量词之间的差异”中阅读更多关于它的内容。
然而,不情愿的量词采用相反的方法:它们从输入字符串的开头开始,然后不情愿地一次吃一个字符寻找匹配。他们尝试的最后一件事是整个输入字符串。