gpt4 book ai didi

Java正则表达式防止匹配特定关键字

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

我一直在探索消极展望 future 和消极展望 future 。但他们似乎没有做我想要的。

假设我有一个句子“word1 word2 word3 word4”,我需要一个正则表达式,如果该句子中存在 word3 或 word7,则拒绝匹配。换句话说,matcher.find() 应该是 false。我该怎么做?

理想情况下,我希望捕获的句子尽可能宽松 .* 但是,如果我收紧捕获的句子,我只能阻止匹配,请参阅 (\\w{4}\下面的\d{1}\\s.*) 部分最终为 //Result: Nothing

    String contents = null;
contents = "word1 word2 word3 word4";
m = Pattern.compile("(?i)(.*)").matcher(contents);
//Result: word1 word2 word3 word4

m = Pattern.compile("(?i)(?!.*(word3))(.*)").matcher(contents);
//Result: ord3 word4

m = Pattern.compile("(?i)(?!.*(word3))(\\w{4}\\d{1}\\s.*)").matcher(contents);
//Result: Nothing

m = Pattern.compile("(?i)(?<!(word3))(.*)").matcher(contents);
//Result: word1 word2 word3 word4

m = Pattern.compile("(?i)(.*)(?<!(word3))").matcher(contents);
//Result: word1 word2 word3 word4

m = Pattern.compile("(?i)(.*)(?<!(word4))").matcher(contents);
//Result: word1 word2 word3 word

最佳答案

怎么样:

Pattern pattern = Pattern.compile("^(?!.*(word1|word2|word3|word4|word5|word6|word7)).*$");
Matcher matcher = patter.matcher(" word1");
System.out.println(matcher.find());

这可以根据这些单词中的模式进行简化,例如:

Pattern p = Pattern.compile("^(?!.*(word[1-7])).*$");
Matcher m = p.matcher(" word8");
boolean b = m.find();

关于Java正则表达式防止匹配特定关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836676/

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