我正在寻找 Java 中的正则表达式模式,它对应于除字母 a 到 z 之外的所有字符。
换句话说,我想要一个对应于符号的正则表达式模式,例如
!"#¤%&/()=?`´\}}][{€$@
或者以某种方式仅将字符串修剪为字母。
例如,让我们考虑以下字符串:
"one!#"¤%()=) two}]}[()\ three[{€$"
到:
"one two three"
Unicode 版本将是
\PL
\PL
都是不具有“字母”属性的 Unicode 代码点。
\pL
将是对应的,所有具有“字母”属性的 Unicode 代码点。
也许您可以在 regular-expressions.info 上找到一些更符合您需求的属性。
您还可以将它们组合成字符类,就像处理预定义的类一样,例如
[^\pl\pN]
将匹配 Unicode 中不是字母或数字数字字符的任何字符。
例如,让我们考虑以下字符串:
"one!#"¤%()=) two}]}[()\ three[{€$"
到:
"one two three"
所需的模式是匹配既不是字母也不是分隔符的所有内容。否则你最终会得到"onetwothree"
而不是"one two three"
你要求的。
[^\pL\pZ]
[^a-zA-Z] 是一个字符类,它匹配除字母 a 到 z 以外的每个字符(小写或大写)。
最简单的形式:[^az]
如果您还想删除大写字母,也可以是 [^a-zA-Z]。