我有一个数组,其中包含已发生的事件,它们是用自由文本编写的,因此除了某些关键字之外没有遵循某种模式,例如。“抢劫”、“凶手”、“入室行窃”、“车祸”等。这些关键字可以在文本中的任何位置,我想找到这些关键字并将它们添加到类别中,例如。“抢劫”。
最后,当我检查完所有事件后,我想要一个这样的类别列表:
Robberies: 14
Murder attempts: 2
Car accidents: 5
...
数组元素可能如下所示:
incidents[0] = "There was a robbery on Amest Ave last night...";
incidents[1] = "There has been a report of a murder attempt...";
incidents[2] = "Last night there was a housebreaking in...";
...
我想这里最好的是使用正则表达式来查找文本中的关键字,但我真的很讨厌正则表达式,因此在这里需要一些帮助。
下面的正则表达式不正确,但我猜这个结构会起作用吗?有没有更好的方法来避免 DRY?
var trafficAccidents = 0,
robberies = 0,
...
function FindIncident(incident) {
if (incident.match(/car accident/g)) {
trafficAccidents += 1;
}
else if (incident.match(/robbery/g)) {
robberies += 1;
}
...
}
提前非常感谢!