gpt4 book ai didi

Java 正则表达式 dotall

转载 作者:行者123 更新时间:2023-11-29 07:43:08 25 4
gpt4 key购买 nike

到现在为止我用的是这个:

"(?s).*\\(.*\\).*\\{.*\\}.*\\;.*"

我在完全请求时应用它(多行也是如此)。问题是当我在 (){} 之间有换行时它也匹配;我不想要。我要匹配的是 (){};对于此表达式中的任何字符(新行除外),新行应仅在该表达式前后匹配。

那么有没有办法只指定一个特定的点,它也应该匹配新行?

最佳答案

在点之前插入 (?-s),这将关闭 DOTALL,然后使用另一个 (?s) 将其重新打开:

"(?s).*\\(.*\\).*\\{(?-s).*\\}(?s).*\\;.*"

或者更好的是,暂时只为表达式关闭它(感谢 @nhahtdh 的这个好建议!):

"(?s).*\\(.*\\).*\\{(?-s:.*)\\}.*\\;.*"

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

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