regex - Dart RegExp 字边界等效

标签 regex dart flutter

我尝试在我的 flutter 应用程序中匹配恰好包含单词“world”的单词和句子。我认为最好的方法是使用单词边界。我的正则表达式如下所示:

String str = "world";
var regexp = RegExp("\b($str)\b", caseSensitive: false);

但它不起作用。这是输出:

regexp.hasMatch("Hello World"); //false
regexp.hasMatch("World"); //false
regexp.hasMatch("worlds"); //false as expected

\b 在 Dart 中不起作用吗?有谁知道如何实现所需的行为?我找不到有关此的任何信息。

谢谢。

最佳答案

来自 Dart regex documentation ;

Dart regular expressions have the same syntax and semantics as JavaScript regular expressions.

如果您在 JavaScript 中使用 RegExp,那么单词边界实际上将由 \\b 表示,即我们需要向 添加一个额外的转义符>\b 字边界:

String str = "world";
var regexp = RegExp("\\b($str)\\b", caseSensitive: false);
regexp.hasMatch("Hello World"); // true

请注意,如果可能,您通常应该避免使用 RegExp,而是使用正则表达式文字。这样做的原因是文字放松并使正则表达式语法更简单。

关于regex - Dart RegExp 字边界等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56090443/

相关文章:

flutter - 如何使用 inkwell 在 flutter 中进行填充

Flutter Web Google 登录

Flutter:如何删除 Flutter 应用程序目录中的文件

flutter - 如何在flutter web中实现视频播放?

Javascript/正则表达式 : Remove text between square brackets

RegExp 查找单词中的跳过字母

java - 用于解析格式化数字的正则表达式

javascript - 替换字符串中的数字

flutter - Flutter BLoC:管理主要数据类型的状态

flutter - 如何使中间容器与其他两个容器不同?