【问题标题】:In the regex world what's a flavor and which flavor does Java use?在正则表达式世界中,什么是风味,Java 使用哪种风味?
【发布时间】:2010-07-12 06:30:20
【问题描述】:

我不是英语母语,所以我不太了解“风味”的含义 可能是指正则表达式语法吗?如果有的话,有多少正则表达式语法?

BRE ERE Perl 等??

【问题讨论】:

标签: java regex


【解决方案1】:

对于正则表达式引擎实现的功能、“幕后”使用的技术以及用于某些功能的语法有许多不同的变体。

regular-expressions.info有一篇很好的文章和对照表。

Java regex 包实现了一个“类似 Perl”的正则表达式引擎,但它具有一些额外的功能,例如所有格量词 (.*+) 和可变长度(但有限)后向断言)。另一方面,它遗漏了 Perl 的一些特性,即条件表达式或 cmets。总而言之,这是一个功能非常齐全的实现。

【讨论】:

    【解决方案2】:

    术语“风味”是指正则表达式引擎——特定正则表达式引擎支持的语法和附加属性。

    Pattern 类记录了Java regex engine 的属性。 除了元字符的含义等基本内容外,正则表达式引擎的不同实现支持不同类型的语法。

    例如:

    • POSIX 引擎支持[:digit:] 用于数字(与[0-9] 相同);
    • Perl 兼容引擎支持\d 数字快捷方式;
    • JavaScript 不支持lookbehinds;
    • PHP 和其他一些支持lookbehinds,但需要它们是固定长度;
    • 文本编辑器 (Notepad++) 的正则表达式引擎通常不支持环视。

    【讨论】:

      【解决方案3】:

      Java 使用 perl 类似 reg-ex 语法

      【讨论】:

        【解决方案4】:

        可以在这里找到一个很好的概述:Comparison of Regular Expression Engines

        【讨论】:

          【解决方案5】:

          正如您所推测的那样,在这种情况下,“风味”是一种特殊的语法。有许多;计算它们只是学术上的努力。

          要查找常用的,请查看grep接受的表格。

          Java 可以使用任何具有 Java 实现的语法。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-07-29
            • 1970-01-01
            • 1970-01-01
            • 2012-08-14
            • 2023-04-03
            • 2011-02-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多