52
A
回答
79
你在找什么是Unicode属性。
例如\p{L}
是任何一种字母的任何语言
所以一个正则表达式匹配这样一个中国字就应该像这样
\p{L}+
有很多这样的特性,详细内容见regular-expressions.info
另一种选择是使用修改
Pattern.UNICODE_CHARACTER_CLASS
在Java 7中有我SA新的属性Pattern.UNICODE_CHARACTER_CLASS
,使预定义字符类的Unicode版本see my answer here for some more details and links
你可以做这样的事情
Pattern p = Pattern.compile("\\w+", Pattern.UNICODE_CHARACTER_CLASS);
和\w
将匹配来自任何语言的所有字母和所有数字(当然还有一些字结合字符如_
)。
7
3
- 的Java正则表达式API工作于
char
型 - 的
char
类型是隐含UTF-16 - 如果你有UTF-8的数据,你需要将它转码为UTF-16上的输入,如果这还没有完成
Unicode是通用字符集,UTF-8可以描述所有字符(包括控制字符,标点符号,字母等)。您必须更具体地了解你想要包括什么和什么你蚂蚁排除。 Java正则表达式使用\p{category}
语法通过category来匹配代码点。请参阅Unicode standard以了解类别的list。
如果您想识别和分隔表意文字中的单词,您需要查看更复杂的API。我会从BreakIterator
类型开始。
6
为了解决NLS支持,并避免接受英文特殊字符,我们可以使用下面的图案......
[A-ZA-Z0-9 \ u0080- \ u9fff] * +
对于UTF代码点参考:http://www.utf8-chartable.de/unicode-utf8-table.pl
代码片断:
String vowels = "అఆఇఈఉఊఋఌఎఏఐఒఓఔౠౡ";
String consonants = "కఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహ";
String signsAndPunctuations = "కఁకంకఃకాకికీకుకూకృకౄకెకేకైకొకోకౌక్కౕకౖ";
String symbolsAndNumerals = "౦౧౨౩౪౫౬౭౮౯";
String engChinesStr = "ABC導字會";
Pattern ALPHANUMERIC_AND_SPACE_PATTERN_TELUGU = Pattern
.compile("[a-zA-Z0-9 \\u0c00-\\u0c7f]*+");
System.out.println(ALPHANUMERIC_AND_SPACE_PATTERN_TELUGU.matcher(vowels)
.matches());
Pattern ALPHANUMERIC_AND_SPACE_PATTERN_CHINESE = Pattern
.compile("[a-zA-Z0-9 \\u4e00-\\u9fff]*+");
Pattern ENGLISH_ALPHANUMERIC_SPACE_AND_NLS_PATTERN = Pattern
.compile("[a-zA-Z0-9 \\u0080-\\u9fff]*+");
System.out.println(ENGLISH_ALPHANUMERIC_SPACE_AND_NLS_PATTERN.matcher(engChinesStr)
.matches());
相关问题
- 1. C正则表达式支持lookahead吗?
- 2. postgresql支持lookbehind正则表达式吗?
- 3. 在python组捕获中对正则表达式的Unicode支持
- 4. Java unicode名称正则表达式
- 5. python unicode正则表达式
- 6. 正则表达式和unicode
- 7. Python Unicode正则表达式
- 8. OrientDb是否支持正则表达式?
- 9. 是否支持正则表达式
- 10. 正则表达式中\ K的支持
- 11. 正则表达式,需要支持
- 12. JDOQL正则表达式支持
- 13. gitignore支持正则表达式
- 14. 多行正则表达式的支持
- 15. 支持正则表达式的GNU grep。
- 16. Emacs正则表达式支持占有量词吗?
- 17. R 3.5.0支持正则表达式\\ L吗?
- 18. 谷歌bigtable和亚马逊simpleDB支持正则表达式吗?
- 19. 检查C++ 11对“正则表达式”的支持:不支持
- 20. java正则表达式支持小写字符
- 21. java编写支架分开,并保持delmiter - 正则表达式
- 22. Java对非英文正则表达式的支持
- 23. java正则表达式支持非ascii值?
- 24. 寻找正则表达式,unicode模式
- 25. 正则表达式支架
- 26. CodeIgniter - Cart类中的'name'正则表达式匹配是否支持Unicode?
- 27. Java正则表达式组与。* vs正常正则表达式
- 28. 匹配正则表达式中的unicode
- 29. python正则表达式替换unicode
- 30. PHP正则表达式对Unicode
在Java 7,正则表达式的Unicode与'UNICODE_CHARACTER_CLASS'标志ö支持可嵌入的'(?U)'。请参阅http://stackoverflow.com/questions/4304928/unicode-equivalents-for-w-and-b-in-java-regular-expressions –