我可以在 Regex 中组合 unicode 类别吗?
Can i combine unicode categories in Regex?
我想得到这样的一组符号:
\P{L}
unicode 类别用作基础
- 将
хХxXтТTоОoO0
个符号添加到 \P{L}
unicode 类别
- 不要使用符号
-_.
由此我在 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]&&[^-_.]]
例子
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
#
$
我想得到这样的一组符号:
\P{L}
unicode 类别用作基础- 将
хХxXтТTоОoO0
个符号添加到\P{L}
unicode 类别 - 不要使用符号
-_.
由此我在 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]&&[^-_.]]
例子
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
#
$