想象一下我有字符串
abcD
我想从中提取abc
出来。我想过使用
^(.+)D$
然而,然后在匹配 group1 中,不仅包含abc
,而且abcD
包含 - 如何使.+
不那么贪婪,因此D
不包含在组中?我知道我可以使用[^D]+
,但这真的是唯一的方法吗?
抱歉,这是一个减少的坏测试用例。 看看这个示例(Java):
Pattern pattern = Pattern.compile("^(\\{(.+?)\\})?$");
Matcher matcher = pattern.matcher("{a}{b}");
System.out.println(matcher.matches()); // true
为什么会这样匹配?正则表达式不应该只允许字符串中的一{
加一吗?}
我只{< not } >}
想要匹配的东西。