\p{L}的C++和JS RegEx等效项

zvms9eto  于 2023-02-25  发布在  其他
关注(0)|答案(1)|浏览(83)

我需要匹配电子邮件地址中的所有unicode字符。我可以在Java中使用\p{L}进行验证。在JS和C中是否有任何\p{L}等效项?
如果没有,哪一个是最可靠的开源库,它在C
和JavaScript中提供了这种功能?

h5qlskok

h5qlskok1#

ECMAScript以及std::regex支持的所有其他风格不支持Unicode属性(Unicode类别类)。
作为一种解决方法,请在C++中使用Boost library
在Boost中,按如下所示声明正则表达式:

boost::wregex reg(L"^\\p{L}+$");

注意,^\p{L}+$只匹配1+个字母的字符串。
在现代浏览器的JavaScript中使用的ECMAScript中,可以使用

var str = "bębnić";
var regex = /^\p{L}+$/u;
console.log(regex.test(str));

JavaScript中的XRegExp based solution,适用于较旧的浏览器(如Safari):
一个二个一个一个

相关问题