【发布时间】:2011-06-28 11:02:56
【问题描述】:
最近,我的经理建议我不要过多依赖 Regex,因为它有很多缺点。当我尝试了解更多信息时,我听说它存在诸如正则表达式可能导致内存泄漏的问题,因为某些对象即使在使用后仍会继续挂在字符串引用上?
.NET RegEx "Memory Leak" investigation
所以说 reg-ex 会导致内存开销并且如果您有其他选择不应该使用它是正确的吗? reg-ex 是否还有其他不利条件(除了难以学习:))
P.S 我正在开发一个类似于网络爬虫的应用程序 (c#.net),它提取所有 href 和一些其他信息,如标题、元标记等。我可以选择使用 HTML 敏捷包而不是 reg-ex。
【问题讨论】:
-
1.不,不使用正则表达式的主要原因不是可能的内存泄漏。 2.You can't parse HTML with regex。 3. 使用 HTML 敏捷包。
-
使用正则表达式提取hrefs?什么...解析html? oh dear
-
顺便说一句,在 几次 情况下,当我们与服务器的 CPU 挂钩时,罪魁祸首是正则表达式遇到了极端情况……要非常小心和他们一起;p
-
@Marc 谢谢..会是:).. 根据 MSDN ,模式 = "href\\s*=\\s*(?:\"(?[^\" ]*)\"|(?\\S+))" 会为 href 解决问题。但我选择了 HTML Agility 包,因为我需要一些其他数据,这些数据可以在 xpath 和 DOM 的帮助下轻松有效地获取
标签: c# .net regex memory-leaks