正则表达式模式java符号

时间:2012-02-29 14:56:44

标签: java regex unicode symbols letter

我正在寻找一个Java中的正则表达式模式,它对应于除字母a到z之外的所有字符。

换句话说,我想要一个与

等符号对应的正则表达式模式
 !"#¤%&/()=?`´\}}][{€$@

或者某种方式将字符串修剪为字母。

作为示例,我们考虑以下字符串:

 "one!#"¤%()=) two}]}[()\ three[{€$"

为:

 "one two three"

4 个答案:

答案 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]。