gpt4 book ai didi

java - 制造+非贪婪?

转载 作者:行者123 更新时间:2023-12-02 07:08:00 25 4
gpt4 key购买 nike

想象我有字符串

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 } >} 的东西来匹配。

最佳答案

为了使量词不那么贪婪,可以在量词后面添加 ?:

^(.+?)D$

但这取决于您的语言或文本编辑器。不同的正则表达式引擎支持不同的功能。

关于java - 制造+非贪婪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com