想象一下我有字符串
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 } >}想要匹配的东西。