0

次のようなマッチコレクションを使用しています。

matches = new Regex(ABS_URL_REGEX, RegexOptions.IgnoreCase | RegexOptions.Compiled).Matches(TargetText);

この場合、正規表現は URL 値に一致します。

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'" + "\"" + ".,<>?«»“”‘’]))

正規表現自体は非常に高速に実行されますが、結果を確認するときにアプリケーションがハングします。

if (matches != null && matches.Count > 0)

カウント部分を取り除くと、この呼び出しはすぐに実行されますが、次の行でスタックします。

foreach (Match thisMatch in matches)

最も一般的な原因は、一致するものが 0 の場合です。では、これらのハングの問題が発生せずに結果を確認するにはどうすればよいでしょうか?

4

0 に答える 0