我必须在文本中找到单词或正则表达式并使用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, пока согласовывали, уже
прошли его сроки. Лицензионный догово发布于 2013-07-03 18:21:58
有两个问题:
\b (或"\\b"作为Java字符串)替换您的点,这是单词锚;Pattern.CASE_INSENSITIVE。但是this flag only works for ASCII。如果希望匹配其他字符,则必须将Pattern.UNICODE_CASE添加到模式编译标志。这就是:
Pattern.compile("whatever", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);最后要注意的是,[ee]和e是等价的,您在这里可能指的是其他东西。
发布于 2013-07-03 18:18:23
替换:
Pattern pt = Pattern.compile("." + regexp + ".", Pattern.CASE_INSENSITIVE);通过以下方式:
Pattern pt = Pattern.compile(".*" + regexp + ".*", Pattern.CASE_INSENSITIVE);https://stackoverflow.com/questions/17445352
复制相似问题