有什么方法可以在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/