regex - 搜索列表的内容使用正则表达式
问题描述
我知道我们可以检查列表的各个项目并将其与正则表达式匹配。我想知道是否有一个函数可以检查列表的所有内容是否匹配正则表达式,并让我知道列表中的任何项目是否与正则表达式匹配。例如假设我有一个这样的字符串
List<String> lst = ["Carfax","Carmax","Carpro","VanPro"];
我想知道列表中的任何项目是否包含单词 car
解决方案
void main() {
List<String> lst = ["Carfax","Carmax","Carpro","VanPro"];
var regExp = new RegExp('car', caseSensitive: false);
var result = lst.where((item) => regExp.hasMatch(item)).toList();
print(result);
}
如果 RegExp 如此简单,您也可以使用contains
,但我认为问题中的简单 regexp 只是为了示例的简洁。
void main() {
List<String> lst = ["Carfax", "Carmax", "Carpro", "VanPro"];
var result = lst.where((item) => item.toLowerCase().contains('car')).toList();
print(result);
}