Ell*_*ogo 2 regex dart flutter
我尝试在我的 flutter 应用程序中匹配包含确切单词“world”的单词和句子。我认为最好的方法是使用单词边界。我的正则表达式如下所示:
String str = "world";
var regexp = RegExp("\b($str)\b", caseSensitive: false);
Run Code Online (Sandbox Code Playgroud)
但这不起作用。这是输出:
regexp.hasMatch("Hello World"); //false
regexp.hasMatch("World"); //false
regexp.hasMatch("worlds"); //false as expected
Run Code Online (Sandbox Code Playgroud)
\b 在 Dart 中不起作用吗?有谁知道如何实现所需的行为?我找不到任何有关此的信息。
谢谢。
来自 Dart正则表达式文档;
Dart 正则表达式与 JavaScript 正则表达式具有相同的语法和语义。
如果你在 JavaScript 中使用RegExp,那么单词边界实际上会用 表示\\b,即我们需要为\b单词边界添加额外的转义:
String str = "world";
var regexp = RegExp("\\b($str)\\b", caseSensitive: false);
regexp.hasMatch("Hello World"); // true
Run Code Online (Sandbox Code Playgroud)
请注意,如果可能的话,您通常应该避免使用RegExp,而是使用正则表达式文字。其原因是文字放松并使正则表达式语法更简单。