【问题标题】:POSIX REGEX vs PCREPOSIX 正则表达式与 PCRE
【发布时间】:2020-09-09 13:20:27
【问题描述】:

我有这个表达式来检查有效的电子邮件地址。 这是来自https://www.regexpal.com/19,它工作正常。

^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$

测试字符串:hello@yahoo.com.

使用 POSIX 对此进行测试会返回错误。我想知道其中哪一部分对 POSIX 无效。

【问题讨论】:

  • 在 POSIX BRE(基本正则表达式)中,“一个或多个”没有 +

标签: posix


【解决方案1】:

POSIX 指定了两种类型的正则表达式,

  1. 基本正则表达式,BRE
  2. 扩展正则表达式,ERE

我们需要知道您想使用哪个。

与 PCRE 最明显的不兼容性是 BRE 中缺少 +{n,m}(?...),以及 ERE 中缺少 (?...)。详情请关注Opengroup's BRE and ERE Specification

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 2023-03-20
    • 2014-08-02
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多