有什么方法可以在Dart中找到确切的单词或字符吗?

List<Type> _media = [
    Device(one: 'abc', two: 'News'),
    Device(one: 'bc', two: 'Television')
];

由于我正在尝试在类里面查询值
我的代码是这样的
  String Query(String value) {
    return _media
        .where((medium) => medium.one.toLowerCase().contains(value.toLowerCase()))
        .map((medium) => (medium.two)).toString();

如果我把“BC”作为值(value),我期望得到的结果是“电视”而不是“新闻”
可能是因为我使用了包含

正则表达式似乎正常工作,但我的代码根本不工作:(
  RegExp regExp = new RegExp(
    r"(?<![\w\d])abc(?![\w\d])",
    caseSensitive: false,
    multiLine: false,
  );

  String Query(String value) {
    return _media
        .where((medium) => medium.one.toLowerCase().regExp.hasMatch(value))
        .map((medium) => (medium.two)).toString();


你们能帮我找到解决方案吗? :)

最佳答案

String没有regExp属性,这就是为什么它不起作用的原因。您应该在hasMatch()对象上调用regExp:

_media.where((medium) => regExp.hasMatch(medium.one))

(您不需要toLowerCase(),因为您的正则表达式已经不区分大小写)

但是,如果您只需要字符串匹配,则可以执行以下操作:
_media.where((medium) => medium.one.toLowerCase() == value)

关于flutter - 在Flutter,Dart中找到确切的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60322961/

10-12 03:48
查看更多