発生したインシデントの配列があります。これらはフリーテキストで記述されているため、一部のキーワードを除いてパターンに従っていません。「強盗」、「殺人者」、「住居侵入」、「自動車事故」など。これらのキーワードはテキストのどこにあってもかまいません。これらのキーワードを見つけて、たとえばカテゴリに追加したいと思います。「強盗」。
最後に、すべてのインシデントを確認したら、次のようなカテゴリのリストを作成します。
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...";
...
ここでの最善の方法は、正規表現を使用してテキスト内のキーワードを見つけることだと思いますが、私は本当にregexpを嫌うので、ここでいくつかの助けが必要です。
以下の正規表現は正しくありませんが、この構造は機能すると思いますか?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;
}
...
}
よろしくお願いします!