gpt4 book ai didi

Java 正则表达式匹配除固定终端之外的所有内容

转载 作者:行者123 更新时间:2023-11-30 08:33:45 25 4
gpt4 key购买 nike

给定一个终止 token <term> ::= "()\n}" ,是否可以匹配

"{" <anything-except-term> <term>

使用 Java 正则表达式?

编辑:更具体地说,我有一个形式的源文件(Scala,碰巧)

{
...
()
}

在哪里...是“所有其余的 Scala 代码。

我真正想要的是提取 ...有点,但我愿意只匹配整个东西。

最佳答案

匹配 "{" <anything-except-term> <term> 的正则表达式, 其中<term>"()\n}"很简单:

\{          Match "{"
.*? Match anything, but stop as soon as the following matches
\(\)\n\} Match <term>, i.e. "()\n}"

现在,您可能还想捕获内容,所以添加 ()捕获组。

.除非您启用 DOTALL ,否则实际上不会匹配“任何东西”模式,可以通过添加 (?s) 内联完成.

从技术上讲,您不需要转义 } .

所以,结果是:(?s)\{(.*?)\(\)\n}
作为 Java 文字,即:"(?s)\\{(.*?)\\(\\)\n}"

参见 regex101用于演示。

关于Java 正则表达式匹配除固定终端之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39278484/

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