最近、正規表現でちょろちょろ判定をしてたんだけど、書き方によって相当パフォーマンスに影響あるんですね。当たり前か。
ホントにかなり変わる。例えば、
string reg1 = @"(パンダ|ライオン|デザイン)(。|\d|\s)";
みたいな正規表現はクソ重い。何となく、「(a|b|c)(x|y|z)」みたいな組合せがすごい増えるとやれる感じがする。上の例でいうと、
string reg2 = @"パンダ(。|\d|\s)"; string reg3 = @"ライオン(。|\d|\s)"; string reg4 = @"デザイン(。|\d|\s)";
って書いてそれぞれ個別に判定した方が数段早かったりする。上の例で計測してみると、だいたい2.6倍早くなった。
組合せを何個も使うような正規表現は考え物ですね。当たり前なのかもしれませんが。。。