【发布时间】:2010-12-11 20:31:20
【问题描述】:
我有一个安静的长正则表达式,有时它响应很快,有时它加载很长的时间像疯了一样。
这是我的正则表达式:
<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[^""]+)
而不是为每个组使用大量的正则表达式,我更喜欢做一次正则表达式。 在正则表达式执行时,有什么函数可以检查或避免长时间加载?
我正在使用 C# 或 F# 希望任何人都可以回答这个问题。
谢谢。
【问题讨论】:
-
您可能会对这篇关于灾难性回溯 (regular-expressions.info/catastrophic.html) 的文章感兴趣,该文章专门记录了
.*?量词的一些令人讨厌的副作用。 -
谢谢大家。该网站很棒。帮了我很多^^"