我有一个正则表达式可以阻止字符串中的无效字符,但它也阻止了中文字符,我不想要它。请帮帮我。下面是我正在使用的正则表达式字符串。
String re = "[^\\x09\\x0A\\x0D\\x20-\\xD7FF\\xE000-\\xFFFD\\x10000-x10FFFF]";
感谢期待!
从 Java 7 开始,您可以使用Unicode 属性/脚本。
例如,您可以使用该属性\p{L}
来匹配任何语言的字母。\p{IsHiragana}
或匹配平假名中包含的字符的脚本。您需要检查哪些脚本适合您的需求。
有关正则表达式和 Unicode 的更多详细信息,请参见docs.Oracle.com上的此处
也可以匹配相反的内容,例如匹配不是\P{L}
字母的每个字符,或者您只是添加到您的否定字符类,而不是应该定义字母的范围。\p{L}