我尝试在我的 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/