正则表达式 匹配中文

Java 正则表达式 匹配中文

在处理中,使用SpringEl进行日期计算,会碰到key是中文的情况,要先进行匹配中文:

语法:

中文    \u4e00-\u9fa5

匹配中文

要求:

如何把

{"formula": "(#处理完成时间-#开始处理时间+#dealTime)/(1000)"}

提取处理完成时间、开始处理时间dealTime

代码:

public static void main(String[] args) {
    String content = "\"formula\": \"(#处理完成时间-#开始处理时间+#dealTime
)/(1000)\"";
    List matchWord = getMatchWord(content);
    System.out.println(matchWord);
}

/**
 * 正则表达式 查找匹配formula公式里面的字段
 * @param content  内容
 * @return  list字符集
 */
public static List getMatchWord(String content) {
    List strList = new ArrayList<>();
    String pattern = "#([a-zA-Z0-9_\\u4e00-\\u9fa5]+)"; // 英文数字中文
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(content);
    while (m.find()) {
        strList.add(m.group(1));
    }
    return ListUtils.emptyIfNull(strList).stream().distinct().collect(Collectors.toList());
}

结果:

[处理完成时间, 开始处理时间, dealTime]

获取到对应的字段,再重新赋英文的名字,这样才能使用SpringEl进行计算。

总结:

  匹配中文,主要就是知道其语法,这个是固定的,怎么推敲写,就没法子了。

你可能感兴趣的:(正则表达式,正则表达式,匹配中文)