允许中文字符的正则表达式

时间:2012-12-14 10:35:00

标签: java xml regex character

我有一个正则表达式阻止字符串中的无效字符,但它也阻止中文字符,我不想要它。请帮帮我。下面是我正在使用的正则表达式字符串。

String re = "[^\\x09\\x0A\\x0D\\x20-\\xD7FF\\xE000-\\xFFFD\\x10000-x10FFFF]";

感谢您的期待!

1 个答案:

答案 0 :(得分:6)

从Java 7开始,您可以使用Unicode properties/scripts

E.g。您可以使用属性\p{L}来匹配任何语言的字母。或者脚本\p{IsHiragana}匹配平假名中包含的字符。您需要检查哪种脚本符合您的需求。

请参阅docs.Oracle.com for more details about regex and Unicode

也可以匹配相反的情况,例如: \P{L}匹配每个字符,即 NOT 一个字母,或者您只是将\p{L}添加到您的否定字符类,而不是应该定义字母的范围。