您的位置:首页 > 财经 > 金融 > 天津市招标投标信息网_中国军事世界排名_友链交换平台源码_杭州网站建设

天津市招标投标信息网_中国军事世界排名_友链交换平台源码_杭州网站建设

2025/4/22 23:00:37 来源:https://blog.csdn.net/feyehong/article/details/147010500  浏览:    关键词:天津市招标投标信息网_中国军事世界排名_友链交换平台源码_杭州网站建设
天津市招标投标信息网_中国军事世界排名_友链交换平台源码_杭州网站建设

参考资料

  1. 07丨正则有哪些常见的流派及其特性?👍👍👍
  2. Linux/Unix工具与正则表达式的POSIX规范

目录

  • 一. 正则表达式简史
  • 二. POSIX 流派
    • 2.1 POSIX 字符组
    • 2.2 BRE 标准
    • 2.3 ERE 标准
  • 三. PCRE 流派
  • 四. 总结


一. 正则表达式简史

  • 1986年,POSIX标准诞生,定义了 Unix 操作系统应当支持的功能,其中也包括正则表达式的规范。
    • Unix 系统或类 Unix 系统上的大部分工具,如 grepsedawk 等,均遵循该标准。
  • 1987年,Perl 编程语言诞生,该语言的正则表达式走红。
  • 1997年,PCRE--Perl 兼容正则表达式(Perl Compatible Regular Expressions)诞生
    • PCRE 是一个兼容 Perl 语言正则表达式的解析引擎
    • PCRE 现已成为其他大部分语言和工具隐然遵循的标准。

二. POSIX 流派

类型全称中文常见命令中默认使用
BREBasic Regular Expression基本正则表达式grepsed
EREExtended Regular Expression扩展正则表达式egrepawkgrep -E

2.1 POSIX 字符组

POSIX字符组解释等价表示
[[:alnum:]]数字和字母[0-9A-Za-z] → 比\w少了下划线
[[:alpha:]]字母[A-Za-z]
[[:ascii:]]ASCII[\x00-\x7F]
[[:blank:]]空格和制表符[\t]
[[:cntrl:]]控制字符[\x00-\x1F\x7F]
[[:digit:]]数字[0-9]
[[:graph:]]可见字符[!-~] 或查看①可见字符详情
[[:lower:]]小写字母[a-z]
[[:upper:]]大写字母[A-Z]
[[:print:]]可打印字符[-~][[:graph:]] 加空格
[[:punct:]]标点符号查看②标点符号详情
[[:space:]]空白字符[\t\n\v\f\r]
[[:xdigit:]]16进制数字[0-9A-Fa-f]

⏹①可见字符详情

[A-Za-z0-9!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~] 

⏹②标点符号详情

[!-\/:-@[-`{-~]

2.2 BRE 标准

BRE 标准(Basic Regular Expression 基本正则表达式),元字符需要转义。

元字符含义示例说明
.匹配任意一个字符a.c匹配 abc, a1c
*匹配前一个字符 0 次或多次bo*匹配 b, bo, booo
\?匹配前一个字符 0 或 1 次e\?匹配 e 或省略
\+匹配前一个字符 1 次或多次a\+匹配 a, aa
\|或运算foo\|bar匹配 foobar
\(\)分组\(ab\)\+匹配一个或多个 ab
\{n,m\}匹配前一个字符 n 到 m 次a\{2,4\}匹配 aa, aaa, aaaa

2.3 ERE 标准

ERE 标准(Extended Regular Expression 扩展正则表达式),无需转义大多数元字符,语法更简洁、可读性更好。

元字符含义示例说明
.匹配任意一个字符a.c同 BRE
*匹配前一个字符 0 次或多次bo*同 BRE
?匹配前一个字符 0 或 1 次e?等价于 BRE 中的 \?
+匹配前一个字符 1 次或多次a+等价于 BRE 中的 \+
|或运算`foobar`
()分组(ab)+等价于 BRE 中的 \(ab\)\+
{n,m}匹配前一个字符 n 到 m 次a{2,4}同 BRE

三. PCRE 流派

⏹1987年,Perl 编程语言诞生,该语言的正则表达式走红。

  • 随着 Perl 语言的发展,Perl 语言中的正则表达式功能越来越强悍,为了把 Perl 语言中正则的功能移植到其他语言中,PCRE 就诞生了。PCRE提供了比POSIX(BRE 和 ERE)更强大的功能。
  • 目前大部分常用编程语言都是源于 PCRE 标准,这个流派显著特征是有 \d\w\s 这类字符组简记方式。
  • 目前广泛应用于 PHPPythonJavaScriptgrep -PC 语言库正则调试工具 等场景。

🔹 PCRE 与 POSIX 的区别

规则PCREERE(扩展正则)BRE(基本正则)
\d
\w
\s
+需要 \+ 转义
{n,m}需要 \{n,m\} 转义
|需要 \| 转义
()需要 \(\) 转义
(?=...)
(?!...)
(?<=...)
(?<!...)

四. 总结

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com