dart - 使用RegEx匹配Unicode字母

标签 dart

我需要匹配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/

相关文章:

dart - 如何在 Flutter 中使用 Bloc 正确设置 DropdownButton 的值?

dom - 获取用户输入的字符

flutter - 取消键盘焦点在按下的多个按钮上

dart - 如何在for循环中创建实例?

dart - 使用pub run中的转换器输出文件

sqlite - 检查sqlite数据库来决定图标的颜色

flutter - 如何在 Flutter 中添加多个相同类型的 ChangeNotifierProvider

dart - 如何在内置值枚举类中定义字段?

firebase - 查询需要索引,但我已经创建了索引

testing - 如何在小部件测试中等待 Future 方法?