我尝试在我的 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 中不起作用吗?有谁知道如何实现所需的行为?我找不到任何有关此的信息。
Thanks.
来自飞镖正则表达式文档 https://api.dartlang.org/stable/2.3.0/dart-core/RegExp-class.html;
Dart 正则表达式与 JavaScript 正则表达式具有相同的语法和语义。
如果您正在使用RegExp
在 JavaScript 中,单词边界实际上可以表示为\\b
,即我们需要添加一个额外的转义符\b
字边界:
String str = "world";
var regexp = RegExp("\\b($str)\\b", caseSensitive: false);
regexp.hasMatch("Hello World"); // true
请注意,您通常应该避免使用RegExp
如果可能,请改用正则表达式文字。其原因是文字放松并使正则表达式语法更简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)