gpt4 book ai didi

java - 正则表达式匹配括号之间的任何内容

转载 作者:行者123 更新时间:2023-11-30 06:05:20 25 4
gpt4 key购买 nike

我正在使用正则表达式将特定模式替换为更简单的模式。

我需要从两个括号之间获取所有字符、空格,并将它们用于捕获组。但是,括号之间的字符也可能是括号。

以下是我尝试匹配的两个示例:

.message("vel pharetra est urna eget justo. Nunc in dignissim velit. {} "
+ error.getMessage().getProperty())
.build().log();

.message("Key : " + oldEntry.getKey() + " and Value: " + oldEntry.getValue())
.build()
.log();

我当前的正则表达式:\.message\(([\S\s]+?)\)[\S\s]*?((\.log\(\))|(\.build\(\)))\;

当消息中没有括号时,它匹配简单模式。但是当有括号时,它会在第一个右括号处停止捕获组。我确信这是因为我正在使用 +? 但我不确定如何指定搜索应该继续。

我用几个例子创建了这个正则表达式。 http://regexr.com/3h15u

最佳答案

您可以使用此正则表达式:

\.message\((?s)(.+?)\)\s*(?:\.(?:log|build)\(\)\s*)+\s*;

() 之间的文本正在捕获组 #1 中捕获

RegEx Demo

在Java中使用:

final String regex = "\\.message\\((?s)(.+?)\\)\\s*(?:\\.(?:log|build)\\(\\)\\s*)+\\s*;";

关于java - 正则表达式匹配括号之间的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892835/

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