最近、正規表現でちょろちょろ判定をしてたんだけど、書き方によって相当パフォーマンスに影響あるんですね。当たり前か。

ホントにかなり変わる。例えば、

string reg1 = @"(パンダ|ライオン|デザイン)(。|\d|\s)";

みたいな正規表現はクソ重い。何となく、「(a|b|c)(x|y|z)」みたいな組合せがすごい増えるとやれる感じがする。上の例でいうと、

string reg2 = @"パンダ(。|\d|\s)";
string reg3 = @"ライオン(。|\d|\s)";
string reg4 = @"デザイン(。|\d|\s)";

って書いてそれぞれ個別に判定した方が数段早かったりする。上の例で計測してみると、だいたい2.6倍早くなった。

組合せを何個も使うような正規表現は考え物ですね。当たり前なのかもしれませんが。。。