【发布时间】:2020-05-31 15:30:30
【问题描述】:
我想得到这样一组符号:
-
\P{L}unicode 类别用作基础 - 将
хХxXтТTоОoO0符号添加到\P{L}unicode 类别 - 不要使用符号
-_.
通过我在 Java 中得到这样的正则表达式:
[[\P{L}]&&[^-_.]&&[хХxXтТTоОoO0]]
但这不起作用,怎么了?
【问题讨论】:
标签: java regex unicode categories
我想得到这样一组符号:
\P{L} unicode 类别用作基础хХxXтТTоОoO0 符号添加到\P{L} unicode 类别-_.
通过我在 Java 中得到这样的正则表达式:
[[\P{L}]&&[^-_.]&&[хХxXтТTоОoO0]]
但这不起作用,怎么了?
【问题讨论】:
标签: java regex unicode categories
使用&&[хХxXтТTоОoO0] 读取this page 表示交叉。
您可以将匹配的хХxXтТTоОoO0 添加到第一个字符类[\\P{L}хХxXтТTоОoO0]
然后将subtraction 用于使用&&[^-_.] 的字符类
[[\\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
#
$
【讨论】: