【问题标题】:Can i combine unicode categories in Regex?我可以在正则表达式中组合 unicode 类别吗?
【发布时间】:2020-05-31 15:30:30
【问题描述】:

我想得到这样一组符号:

  1. \P{L} unicode 类别用作基础
  2. хХxXтТTоОoO0 符号添加到\P{L} unicode 类别
  3. 不要使用符号-_.

通过我在 Java 中得到这样的正则表达式:

[[\P{L}]&&[^-_.]&&[хХxXтТTоОoO0]]

但这不起作用,怎么了?

【问题讨论】:

    标签: java regex unicode categories


    【解决方案1】:

    使用&&[хХxXтТTоОoO0] 读取this page 表示交叉。

    您可以将匹配的хХxXтТTоОoO0 添加到第一个字符类[\\P{L}хХxXтТTоОoO0]

    然后将subtraction 用于使用&&[^-_.] 的字符类

    [[\\P{L}хХxXтТTоОoO0]&&[^-_.]] 
    

    Java demo

    例子

    final String regex = "[[\\P{L}хХxXтТTоОoO0]&&[^-_.]]";
    final String string = "aTo-_.#$";
    
    final Pattern pattern = Pattern.compile(regex);
    final Matcher matcher = pattern.matcher(string);
    
    while (matcher.find()) {
        System.out.println(matcher.group(0));
    }
    

    输出

    T
    o
    #
    $
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-20
      • 2010-09-29
      • 1970-01-01
      • 2010-11-02
      • 2018-12-20
      • 2013-05-23
      • 2015-12-10
      • 1970-01-01
      相关资源
      最近更新 更多