gpt4 book ai didi

java - 正则表达式匹配非前面的字符并匹配后面的字符

转载 作者:行者123 更新时间:2023-12-02 03:10:27 25 4
gpt4 key购买 nike

我很难理解为什么以下正则表达式不起作用。我的要求如下。

匹配后面不跟的“config”。 (时期)。对于匹配的内容,“config”前面不应带有 *。另外,这应该是函数参数,意味着它应该位于 ( 和 ) 之间。以下是我所拥有的,它没有给我正确的值(value)观。这是用 Java 编写的。

String condition1 = "config.property == function(/*config ConfigCon */config,\"\")";
String condition2 = "config.property == function(/*config ConfigCon */config.prop1,\"\")";
String key = "config";
String matchString = "\\(.*(?<!\\*)" + key + "(?!\\.).*\\)";
System.out.println(matchString);
Pattern p = Pattern.compile(matchString);
Matcher m = p.matcher(condition1);
//The below should say true;
boolean cond = m.find();
//The below should say false;
m = p.matcher(condition2);
cond = m.find();

我的逻辑是从转义开始(后跟一个或多个字符,转义的负后视 * 后跟 key,后跟转义的负前视。后跟一个或多个字符,然后转义)。我在这里缺少什么。

最佳答案

删除\\从正则表达式的开始和结束它将起作用。使用正则表达式(.*(?<!\\*)" + key + "(?!\\.).*) .

我尝试了这个,它给出了 true对于第一个和 false第二个。

关于java - 正则表达式匹配非前面的字符并匹配后面的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41130115/

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