为什么这个正则表达式没有返回任何匹配?

时间:2012-05-12 20:32:12

标签: regex case-insensitive dart

我正在使用dart regular expression并试图找到match

飞镖代码:http://try.dartlang.org/s/SY1B

  RegExp exp = const RegExp("/my/i");
  String str = "Parse my string"; 
  Iterable<Match> matches = exp.allMatches(str);
  for (Match m in matches) {
    String match = m.group(0);
    print(match);
  }

我正在尝试执行不区分大小写的搜索以查找字符串的所有匹配项。它说没有比赛。我确定我搞砸了某个地方,因为我是regexp的新手。如何修改代码以找到匹配项?

对于上下文,我计划修改代码以搜索我认为将使用以下代码实现的任何字符串。

RegExp exp = const RegExp("/${searchTerm}/i");

1 个答案:

答案 0 :(得分:4)

/ pattern / flags语法适用于JavaScript,但不适用于Dart,因为Dart没有正则表达式文字。相反,文档显示了这一点:

const RegExp(String pattern, [bool multiLine, bool ignoreCase])

所以你的构造函数应该是这样的:

RegExp exp = const RegExp("my", ignoreCase: true);