我需要匹配Unicode字母,类似于PCRE的\p{L}
。
现在,由于Dart的RegExp类基于ECMAScript的类,因此可悲的是,它没有\p{L}
的概念。
我正在考虑构造一个与所有Unicode字母匹配的大字符类,但是我不确定从哪里开始。
因此,我想匹配以下字母:
foobar
מכון ראות
但是R符号不应该匹配:
BlackBerry®
也不应该使用任何ASCII控制字符或标点符号等。基本上,每种语言Unicode都支持的每个字母(无论是å,ä,φ还是ת)都应该匹配(如果它们是实际字母)。
最佳答案
我知道这是一个老问题。但是RegExp
现在支持unicode categories(自Dart 2.4起),因此您可以执行以下操作:
RegExp alpha = RegExp(r'\p{Letter}', unicode: true);
print(alpha.hasMatch("f")); // true
print(alpha.hasMatch("ת")); // true
print(alpha.hasMatch("®")); // false
关于dart - 使用RegEx匹配Unicode字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15531928/