使用正则表达式的缺点

2024-02-13

最近,我的经理建议我不要过度依赖正则表达式,因为它有很多缺点。当我尝试了解更多信息时,我听说它存在诸如正则表达式之类的问题,因为某些对象即使在使用后仍会继续挂在字符串引用上,从而导致内存泄漏?

.NET RegEx“内存泄漏”调查 https://stackoverflow.com/questions/2734766/net-regex-memory-leak-investigation

所以说 reg-ex 会导致内存开销,如果您有其他选择,则不应使用 reg-ex ,这是正确的吗? reg-ex 还有其他缺点吗(除了它很难学:))

P.S 我正在开发一个类似于网络爬虫的应用程序(c#.net),它提取所有 href 和一些其他信息,如标题、元标记等。我可以选择使用 HTML Agility pack 而不是 reg-ex。


使代码难以阅读。大多数时候,即使以更冗长的代码为代价,您最好不要使用正则表达式。代价高昂的性能影响和代码可读性的下降意味着您在大多数情况下不使用正则表达式,尤其是简单的和复杂的情况。

出于您提到的目的(解析 HTML 等),简单的正则表达式无法完成工作(因为 HTML 不是常规语言)。这就像有一把锤子,而一切看起来都像钉子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式的缺点 的相关文章

随机推荐

  • 使用 Url.Action 时如何将参数传递给 URL?

    我有以下代码 function reload var referenceID ReferenceID val detailData load Url Action DetailData new pk referenceID 它指出 pk 之
  • Webpack - 错误:无法在加载程序列表中定义“查询”和多个加载程序

    我添加后出现这个错误react hot按照本教程将加载器放入数组中 https thoughtbot com blog setting up webpack for react and hot module replacement http
  • 更新 Hudson 和插件

    我想知道哪些步骤是升级 Hudson 和插件的最佳步骤 我现在运行的是1 347 我曾经尝试更新 但由于某些插件不兼容而导致混乱 另外我想删除一些插件是否适合只删除 hpi 文件 很高兴知道其他人如何执行此步骤以及按什么顺序执行 我应该先升
  • bogoMIPS 值正在变化

    我一直在读取 Samsung Galaxy sgh i897 上的 cpuinfo 文件来检索 bogoMIPS 值 现在正在学习如何解释这些信息 最初 我在加载线程的主活动下执行此操作 并且始终获得值 997 59 然后 我将文件读取方法
  • 反应选择-为下拉菜单和控制显示不同的文本/标签?

    在我的反应选择下拉列表中 标签有数百个字符长 在控制芯片中 我想显示下拉菜单中内容的较短版本 这可能吗 编辑 我想设置芯片的文本 而不是像素宽度 解决方案1 使用多值时可以自定义控制芯片的样式Select与道具styles就像下面的例子 c
  • 我应该如何在 Pyside6 应用程序中使用 Material Design?

    我的 pyside 6 应用程序中有以下代码 import sys os from PySide6 QtGui import QGuiApplication from PySide6 QtQml import QQmlApplication
  • HTML5 微数据:跨越内容?

    我读过了HTML5 规范 http www w3 org TR 2014 REC html5 20141028 single page html 微观数据规范 http www w3 org TR 2013 NOTE microdata 2
  • AngularJS - 多个指令实例多次调用 XHR

    我有一个 Angularjs 指令 ExampleDirective 它具有控制器 ExampleController 控制器定义了两个 Promise 对象 其中每个 Promise 对象发出 Http GET 请求并返回响应 在指令中
  • 如何使用 terraform 输出作为 Azure DevOps 管道中的变量

    我试图将使用 Azure DevOps 的 terraform 部署生成的 databricks 工作区名称作为变量传递到另一个步骤 但不知道该怎么做 所以我在我的output tf中定义了输出 output workspace name
  • 当文件打开后被删除时,Python 如何读取该文件

    我很难理解 Python 在删除文件后如何读取文件的概念open编辑 这是代码 gt gt gt import os gt gt gt os system cat foo txt Hello world 0 gt gt gt f lt io
  • 部分类与扩展方法

    我没有太多使用这两种方法来扩展类或针对类创建扩展方法的经验 通过查看其他人的工作 我在这里有一个问题 我看到人们在项目中使用分部类来扩展实体类 同时 在同一个项目中 还有另一个文件夹 其中包含很多实体类的扩展方法 这样做对吗 我的意思是这两
  • 我可以向 SKSpriteNode 添加边框吗,类似于 UIView?

    我感兴趣如果SKSpriteNode可以模仿一个人的行为UIView我可以在哪里指定边框和角半径 self view layer borderColor UIColor lightGrayColor CGColor self view la
  • Excel 中是否有一个类似的命令,其执行与 MATLAB 中的“floor”命令相同的功能[重复]

    这个问题在这里已经有答案了 MATLAB 中的 floor 命令定义为 向负无穷大舍入 Floor X 将 X 的元素四舍五入为最接近的整数 趋向于负无穷大 Excel 中是否有类似的命令 或者有人知道如何在 Excel 中执行相同的操作
  • C DLL 到 Python 回调

    我有一个 Visual C DLL 我在 DLL 中导出了 SetCallback 函数指针 我使用此函数从 python2 7 脚本设置回调函数 我遵循 Python 文档中给出的内容 from ctypes import def myp
  • 如何在 vue-cli 中禁用 ESLint?

    我该如何禁用ESlint在生成的项目中vue cli preLoaders test vue loader eslint include projectRoot exclude node modules test js loader esl
  • Google Sheets 查询图像从查询结果中显示

    当图像从查询中出来时 我不知道如何在 gsheet 的单元格中显示图像 我尝试过各种形式的数组公式和查询组合 但没有任何结果 希望有任何帮助 尝试过这个 A4 A21 是图像 URL ARRAYFORMULA 查询 B4 B21 图像 A4
  • Objective-C 中的美元符号是什么意思?

    CAGradientLayer grad CAGradientLayer layer grad colors array ColRGBA2 1 0 0 1 ColRGBA2 0 1 0 1 ColRGBA2 0 0 1 1 ColRGBA2
  • 如何让 axios 使用 AWS ACM 公共证书?

    我很惊讶地发现 在使用 axios 和 node fetch 时 AWS ACM 颁发的公共证书会触发 无法验证第一个证书 错误 但是 当我从命令行使用curl 时 我没有收到错误 所以我的问题是 为什么节点会有这样的行为 Curl 似乎可
  • 对小文本进行有效搜索

    我有许多小文本 假设大约 500 个单词 和两个数据库 每个数据库大约有 10 000 个条目 关键字 我现在想要处理每个文本并找出文本中包含哪些关键字 保存在两个数据库中的关键字 你们中有人有关于如何有效地做到这一点的好方法吗 我想在搜索
  • 使用正则表达式的缺点

    最近 我的经理建议我不要过度依赖正则表达式 因为它有很多缺点 当我尝试了解更多信息时 我听说它存在诸如正则表达式之类的问题 因为某些对象即使在使用后仍会继续挂在字符串引用上 从而导致内存泄漏 NET RegEx 内存泄漏 调查 https