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