私は静かな長い正規表現を持っていますが、時にはクレイジーなように長い時間ロードすることもあります。ここC#の正規表現の長時間ロードに関する問題
は私の正規表現です:
<div class=""rwResult bg"">.*?mp3/d/[^>]+>(?<Name>[^<]+)</a>.*?artist:[^>]+>(?<Artist>[^<]+).*?user</span>[^>]+[^""]+""(?<Uploader>[^""]+).*?category:.*?"">.*?"">(?<Category>[^<]+).*?time: (?<Duration>[^ ]+) \| (?<StreamSize>[0-9]+) (?<Weight>[^ ]+) \| listened: (?<Clicks>[0-9]+).*?<a href=""(?<DownloadLink>http://dl[^""]+)
ではなく、グループごとに正規表現の多くを使用して、私は1時間の正規表現をしていることを好みます。 正規表現が実行されている間に長時間のロードを確認または回避できる関数はありますか?
私はC#またはF#の誰かがこの問題に答えることを願っています。
ありがとうございました。
致命的なバックトラッキング(http://www.regular-expressions.info/catastrophic.html)に興味があるかもしれません。具体的には、 '。*? '量限定子の厄介な副作用のいくつかが書かれています。 – Juliet
ありがとうございます。ウェブサイトは素晴らしかったです。 alotを通して私を助けました^^ " –