2014-09-25 63 views
1

我需要匹配任何字母(如MS Office Word查找特殊字符^ $功能)与正则表达式。 我试过[a-zA-Z],但不匹配任何Unicode字母,如重音字母或ä,ö,ü,ß。 我也试过[a-zA-ZäöüßÄÖÜ],但是有太多的字母。 有没有任何正则表达式来匹配所有这些字母?匹配任何unicode字母与java正则表达式

+0

有你没有尝试'\ w'(字字符),具体原因是什么? – jmarkmurphy 2017-10-25 19:27:15

回答

2

\\p{L}正则表达式将匹配来自任何语言的任何种类的信件。

DEMO

2

在Java中使用匹配任何Unicode字母:

\\p{L} 
2

您可以使用\\p{L}匹配任何字母,统一纳入。

要进行微调匹配,可以参考filefront的文档,并将其与Java模式here中记录的Unicode功能组合使用。

快速例如

String input = "ZäöüßÄÖÜß您好"; 
System.out.println(input.matches(String.format("\\p{L}{%d}", input.length()))); 

输出

true 
1

看来你想匹配不任何字母(如阿拉伯语字符),但拉丁字符:

\p{IsLatin}+ 

使用您的字符:

System.out.println("ZäöüßÄÖÜ".matches("\\p{IsLatin}+")); // true 
相关问题