我有一個這樣的字符串:使用正則表達式可能會提高字符串解析的性能?
// string1
horse|cow|goat|zebra|
和另一個字符串是這樣的:
// string2
horse:a,pig:b,cow:z,monkey:g,goat:a,
我的目標是拆分字符串1,然後挑出它的任何出現在字符串2,建立一個直方圖。我目前做這個:
var histogram = {};
var animals = string1.split("|");
for (var i = 0; i < animals.length; i++) {
var animal = animals[i];
var animalColon = animal + ":";
var index = string2.indexOf(animalColon);
while (index != -1) {
var indexColon = index + animalColon.length;
var indexFinal = string2.indexOf(",", indexColon);
var letter = string2.substring(indexColon, indexFinal);
if (histogram[letter] == null) {
histogram[letter] = 1;
}
else {
histogram[letter] = histogram[letter] + 1;
}
index = string2.indexOf(animalColon, index + 1);
}
}
末,它可能會打印出類似這樣:
// histogram:
a: 2 instances // from { horse, goat }
z: 1 instance // from { cow }
以上的工作,但我有與DP animals.length通過字符串2檢查大家。
有沒有辦法使用正則表達式來做這個解析 - 本質上並行地運行所有的測試,而不是做多次通過?由於string2是常量,似乎所有的檢查都可以同時完成(不知道是否像這樣實現了正則表達式)。
我增加了字符串1和字符串元素的數量成千上萬元素的順序上,它仍然運行相當快,但很擔心較慢的機器,可維護性和類似的東西,
感謝