gpt4 book ai didi

Java:正则表达式不匹配?

转载 作者:行者123 更新时间:2023-11-30 10:38:42 24 4
gpt4 key购买 nike

我正在尝试使用以下正则表达式从字符串中提取特殊序列:

[(].*[)]

只有当字符串包含 () 且它们之间有文本时,我的模式才应该匹配。

不知何故,我使用 Pattern#compile(myString) 创建了一个新的 Pattern,然后使用 Matcher matcher = myPattern.matcher(); 匹配字符串; 它没有找到任何东西,即使我在 regexr.com 上试过了它在那里起作用。

我的Pattern是另一个类中的static final Pattern对象(我​​直接用了Pattern#compile(myString)

要匹配的示例字符串:

save (xxx,yyy)

最佳答案

这里可能的问题是您的量词。

由于您将贪婪的 *. 的组合用于任何字符,因此您的匹配将不会像 . 一样正确定界匹配结束 )

尝试使用不情愿的 [(].*?[)]

参见 docs 中的量词.

可以转义圆括号而不是使用自定义字符类,像这样:\\(\\),但这有与你的问题无关。

另请注意(感谢esprittn)

  • * 量词将匹配 0+ 个字符,因此如果您想将匹配限制为非空括号,请改用 .+? - 这将保证括号内至少有一个字符。

关于Java:正则表达式不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39613659/

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