整则表达式分类
Posted siqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了整则表达式分类相关的知识,希望对你有一定的参考价值。
POSIX 规范
Portable Operating System Interface for uniX
定义了 UNIX 操作系统应当支持的功能
包括:
BRE(Basic Regular Expression,基本型正则表达式)
GNU 也对 BRE 做了扩展也支持 『(』、『)』、『{』、『}』、『+』、『?』、『|』 但是需要转义
命令:grep、vi、sed
ERE(Extended Regular Express,扩展型正则表达式)
虽然 BRE 名为“基本”而 ERE 名为“扩展”,但 ERE 并不要求兼容 BRE 的语法,而是自成一体。因此其中的元字符不用转义(在元字符之前添加反斜线会取消其特殊含义)
『(』、『)』、『{』、『}』、『+』、『?』、『|』 不需要转义
命令:egrep、awk
几种 POSIX 流派的说明
流派 |
说明 |
工具 |
BRE |
(、)、{、}都必须转义使用,不支持 +、?、| |
grep、sed、vi(但 vi 支持这些多选结构和反向引用) |
GNU BRE |
(、)、{、}、+、?、|都必须转义使用 |
GNU grep、GNU sed |
ERE |
元字符不必转义,+、?、(、)、{、}、|可以直接使用,1、2 的支持不确定 |
egrep、awk |
GNU ERE |
元字符不必转义,+、?、(、)、{、}、|可以直接使用,支持1、2 |
grep –E、GNU awk |
常用 Linux/Unix 工具中的表示法
PCRE 记法 |
vi/vim |
grep |
awk |
sed |
* |
* |
* |
* |
* |
+ |
+ |
+ |
+ |
+ |
? |
= |
? |
? |
? |
{m,n} |
{m,n} |
{m,n} |
{m,n} |
{m,n} |
* |
< > |
< > |
< > |
y < > |
(…|…) |
…‖……‖… |
…‖……‖… |
(…|…) |
(…|…) |
(…) |
…… |
…… |
(…) |
(…) |
1 2 |
1 2 |
1 2 |
不支持 |
1 2 |
https://www.infoq.cn/article/2011/07/regular-expressions-6-POSIX
https://www.cnblogs.com/lixuwu/p/7816335.html
以上是关于整则表达式分类的主要内容,如果未能解决你的问题,请参考以下文章
Java8新特性——lambda表达式.(案例:完全数分类)
R语言进行变量编码(recode):把dataframe中连续变量基于条件表达式转化为多个类别的离散变量(分类变量)使用attach函数绑定数据
php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式
php PHP - Wordpress - 搜索 - wordpress自定义搜索功能,包含ACF /高级自定义字段和分类法以及拆分表达式