我需要匹配电子邮件地址中的所有unicode字符。我可以使用\ p {L}在Java中进行此验证。 JS和C ++中有没有\ p {L}等价物?
如果不是哪个是在C ++和JavaScript中提供此功能的最可靠的开源库?
答案 0 :(得分:3)
ECMAScript以及std::regex
支持的所有其他版本都不支持Unicode属性(Unicode类别类)。 JavaScript也没有这种支持。
作为一种解决方法,请在C ++中使用Boost library,在JavaScript中使用XRegExp library。
在Boost中,声明正则表达式如下:
boost::wregex reg(L"^\\p{L}+$");
请注意,^\p{L}+$
仅匹配1个以上的字母字符串。
JS示例:
var str = "bębnić";
regex = XRegExp('^\\p{L}+$');
console.log(regex.test(str));

<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>
&#13;