检查文本是否至少包含字符串列表中的一个字符串- Dart - Flutter



我有一个字符串列表

var list = ['my name is', 'people call me', 'i am', 'you can call me'];

在执行if语句之前,我想检查文本是否包含我的字符串列表中的至少一个表达式

if (text.toLowerCase().contains("my name is") ||
text.toLowerCase().contains("people call me") || text.toLowerCase().contains("i am")) {

//do something
}

现在这就是我正在做的,但从长远来看,它不会起作用,因为我的列表会越来越长

如果text.contains(anyStringfromMyList)

我需要返回true

编辑:我还想知道(返回)这个列表中的哪个项目是在text中找到的🙏

可以使用任何方法列表的

var list = ['my name is', 'people call me', 'i am', 'you can call me'];
String text = "my name is Adam";
if (list.any((item) => text.toLowerCase().contains(item))) {
//do something
}

或使用regex

var regex = new RegExp("\b(?:${list.join('|')})\b", caseSensitive: false);
if (regex.hasMatch(text)) {
//do something
}

获取查找项的值:

String foundText = list.firstWhere((item) => text.toLowerCase().contains(item), orElse: () => "");
if (foundText != "") {
print(foundText);
}

用于获取所有查找项的值:

List<String> foundItems = list.where((item) => text.toLowerCase().contains(item)).toList();
if (foundItems.isNotEmpty) {
print(foundItems);
}

相关内容

  • 没有找到相关文章

最新更新