1

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

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

感谢期待!

4

1 回答 1

7

从 Java 7 开始,您可以使用Unicode 属性/脚本

例如,您可以使用该属性\p{L}来匹配任何语言的字母。\p{IsHiragana}或匹配平假名中包含的字符的脚本。您需要检查哪些脚本适合您的需求。

有关正则表达式和 Unicode 的更多详细信息,请参见docs.Oracle.com上的此处

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

于 2012-12-14T11:36:45.357 回答