gpt4 book ai didi

java - 匹配器无法匹配

转载 作者:行者123 更新时间:2023-12-01 14:26:25 24 4
gpt4 key购买 nike

我有以下代码。我需要检查文本中是否存在某些禁用单词列表中的任何单词。但即使这个词存在于文本匹配器中也看不到它。这是代码:

final ArrayList<String> regexps = config.getProperty(property);
for (String regexp: regexps){
Pattern pt = Pattern.compile("(" + regexp + ")", Pattern.CASE_INSENSITIVE);
Matcher mt = pt.matcher(plainText);
if (mt.find()){
result = result + "message can't be processed because it doesn't satisfy the rule " + property;
reason = false;
System.out.println("reason" + mt.group() + regexp);
}
}

出了什么问题?此代码无法找到正则表达式 в[ыy][шs]лит[еe],即 plainText = "Вышлите пожалуйста новый счет на оплату 中的 regexp上 Санг, пока согласовывали, ужепрошли его сроки。 Лиценз..."。我还尝试了 regexp 的另一种变体,但一切都没用

最佳答案

问题出在别处。

import java.util.regex.*;

public class HelloWorld {

public static void main(String []args) {
Pattern pt = Pattern.compile("(qwer)");
Matcher mt = pt.matcher("asdf qwer zxcv");
System.out.println(mt.find());
}
}

这打印出 true。不过,您可能想使用单词边界作为分隔符:

import java.util.regex.*;

public class HelloWorld {

public static void main(String []args) {
Pattern pt = Pattern.compile("\\bqwer\\b");
Matcher mt = pt.matcher("asdf qwer zxcv");
System.out.println(mt.find());
mt = pt.matcher("asdfqwer zxcv");
System.out.println(mt.find());
}
}

除非您需要捕获组中的关键字,否则括号是无用的。但你一开始就已经拥有了它。

关于java - 匹配器无法匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151607/

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