0
    var match = Regex.Match(GetActiveWindowTitle(), "(?i)ab.*?");
    var match2 = Regex.Match(GetActiveWindowTitle(), "(?i)bc.*?");
    var match3 = Regex.Match(GetActiveWindowTitle(), "(?i)de.*?");
    var match4 = Regex.Match(GetActiveWindowTitle(), "(?i)ef.*?");
    var match5= Regex.Match(GetActiveWindowTitle(), "(?i)gh.*?");
    var match6= Regex.Match(GetActiveWindowTitle(), "(?i)ij.*?");
    var match7 = Regex.Match(GetActiveWindowTitle(), "(?i)kl.*?");

 if (match4.Success || match.Success || match2.Success || match3.Success etc....)
            {
                MessageBox.Show("Sucess");
            }

どうすればもっと短くできますか?多くの一致を再グループ化する正規表現クラス関数はありますか?

4

1 に答える 1

6
"(?i)(?:ab|bc|de|ef|gh|ij|kl).*?"

代替にはパイプ|トークンを使用します。

?:は、これらが「非キャプチャ括弧」であることを示していることに注意してください。これはオプションですが、通常は括弧内の内容をキャプチャする必要がないことを示すために実行されます (既定の動作)。この場合、代替オプションを囲むために括弧のみを使用しています。

于 2013-04-12T11:39:31.980 に答える