我可以在 Regex 中组合 unicode 类别吗?

Can i combine unicode categories in Regex?

我想得到这样的一组符号:

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

由此我在 Java:

中得到了这样的正则表达式
[[\P{L}]&&[^-_.]&&[хХxXтТTоОoO0]]

但这不起作用,怎么了?

使用&&[хХxXтТTоОoO0]读取this page意味着一个交集。

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

然后使用 subtraction 作为字符 class 使用 &&[^-_.]

[[\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
#
$