问题描述
我有字符串 "Վիկտոր1 Ʊփոյան2" 使用正则表达式我想得到两个字符串的首字母。因此,我将得到 "Վ" 因为字符串是 unicode,所以我正在考虑以下正则表达式:
"(\\p{L})\\p{L}*\\s(\\p{L})\\p{L}*
如果字符串不包含数字"1"、"2",它工作正常,为了得到结果我还尝试了以下正则表达式:
"(\\p{L}\\p{N})\\p{L}\\p{N}*\\s(\\p{L}\\p{N})\\p{L}\\p{N}*
但这并不正确。
是否有类似"\\p{LN}" 的东西可以同时检查 Unicode 字母和数字,或者有人知道我该如何解决这个问题?
最佳答案
Is there a something like "\p{LN}" which will check for Unicode letters and numbers at the same time
使用匹配 Unicode 字母或数字的字符类 [\p{L}\p{N}]
。
或者将 \p{Alnum}
与 Pattern.UNICODE_CHARACTER_CLASS
标志一起使用(或在模式前添加 (?U)
)。
关于java - 正则表达式匹配 Unicode 和数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298421/