【问题标题】:Pros and Cons of using regex in Java [closed]在 Java 中使用正则表达式的优缺点 [关闭]
【发布时间】:2011-05-13 00:06:50
【问题描述】:

有人可以全面列出在 Java 编程中使用正则表达式的优缺点吗?

【问题讨论】:

  • 您在哪个领域寻找利弊? Java 中的 RegExes 与其他语言,RegExes 与手动字符串解析,还有其他什么?
  • "有些人在遇到问题时会想“我知道,我会使用正则表达式。”现在他们有两个问题。” - 杰米·扎温斯基

标签: java regex


【解决方案1】:

专业人士:当正则表达式满足您的需要时。

缺点:当他们不这样做时。

除此之外,上述问题主要是意识形态问题。

【讨论】:

    【解决方案2】:

    优点: 它们是匹配输入的有效方法。 它们很容易配置,并且可以从代码中分离出来。

    缺点: 它们很难阅读。 它们没有性能。如果性能是一个问题,请不要使用它们。

    【讨论】:

    • 或许“并不总是表现良好”更准确?
    • @mitch-wheat 很难解释它们的成本,而且更多时候它们不会成为非性能代码的罪魁祸首。很多时候你不需要关心性能,但如果你需要关心,我建议避免使用正则表达式。
    • 什么鬼鼬鼠词是“表演者”??
    • 正则表达式的速度取决于编写它们的程序员的速度。
    • 如果他们难以阅读,那是他们的作者的错。它们应该始终易于阅读:这就是 Pattern.COMMENTS(?x) 的全部意义所在。该模式最重要的一点是,您可以使用缩进和空格对事物进行逻辑分组。但是对于真正的 barnstormer,您需要使用 grammatical patterns
    【解决方案3】:

    专业人士:它有效且简单。

    缺点:没有。

    为什么要问?也许您有更具体的事情想了解?

    【讨论】:

    • 缺点:复杂的正则表达式很难理解、调试和维护
    • @Mitch Wheat:所有代码可能难以理解、调试和维护。正则表达式比以“硬方式”写出的等效程序逻辑更容易理解、调试和维护。
    • @Mitch,@S.Lott:计算量也可能很大。它们也不是详尽无遗的。考虑您正在字符串 aaaaa 中寻找 a*。你不会得到所有的结果(这可能是你想要的,也可能不是……取决于情况)
    • @S.Lott:理论上是的。在实践中,我认为很难证明你断言正则表达式很简单。
    • -1,它们并不简单。 “在理论上和实践中,它只是另一种语言。”确切地!为了使用它们,您需要学习另一种编程语言。它使其灵活而强大,但并不“简单”。
    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多