gpt4 book ai didi

java - 匹配器的问题

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

我必须在文本中查找单词或正则表达式并使用 java.util.regexp.Matcher for this

必须执行的方法我有以下:

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 + "DENIED. reason: " + property;
reason = false;
LOG.info("reason " + mt.group() + regexp);
}
}

但是由于某种原因这段代码找不到正则表达式 в[ыy][шs]лит[еe]在正文中

Вышлите пожалуйста новый счет на оплату на asda, пока согласовывали, уже
прошли его сроки. Лицензионный догово

最佳答案

有两个问题:

  • 您在比赛前后指定一个点;因此,每个单词周围需要一个字符;尝试将点替换为 \b (或 "\\b" 作为 Java 字符串),这是单词 anchor ;
  • 您指定Pattern.CASE_INSENSITIVE。但是this flag only works for ASCII 。如果您想匹配其他字符,则必须添加 Pattern.UNICODE_CASE到您的模式编译标志。

即:

Pattern.compile("whatever", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);

最后一点,[ee]e 是等价的,您可能在这里指的是其他东西。

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

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