POSIX正则表达式

精准匹配的秘密:POSIX 字符类如何赋能你的正则表达式 POSIX字符类是正则表达式的一部分,作为预定义的字符集组件使用。摘要要点: POSIX字符类是正则表达式中用于字符集匹配的特殊语法(如[[:digit:]]) 相比手动列举字符(如[0-9]),POSIX类更具可读性和可移植性 主要应用于正则的字符集[]中,支持多语言字符处理 常见POSIX类包括[:digit:],[:alpha:],[:space:]等 虽然tr命令也使用类似语法,但它是简单字符处理而非完整正则引擎 (字数:99) 阅读详情

正则表达式(regular expression)是一种表示方式,在许多地方均有对此的支持,如命令grep、语言Python、工具vim等。但是这里仅讨论POSIX正则表达式,显然它与其他正则表达式(如传统的Unix正则表达式)存在稍许的差异。POSIX正则表达式分为:BRE(Basic Regular Expression)和ERE(Extended Regular Expressions)。以下是有关POSIX正则表达式的元字符(meta)的说明:

/
用于关闭后续字符的特殊意义。有时用于反向的打开后续字符的特殊意义。
.
(点号)匹配任意单个的字符,但NULL除外。
*
匹配任意数目的字符(可以为0)。以ERE来说,此前置字符可是正则表达式,如.*代表了匹配任意字符的长度。但对于BRE而言,*置于正则表达式的第一个字符,不具任何特殊意义。
^
(脱字号)匹配出现在行首或字符串开始位置的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的开头具有此特殊含义。
$
匹配出现在行末的空字符串。ERE:置于任何位置都具特殊含义;BRE:仅在正则表达式的结尾具有此特殊含义。
[...]
方括号表达式,匹配方括号内的任意一字符。连字符(-)指的是连续字符的范围。^符号置于方括号里第一个字符则有反向含义:指的是匹配不在列表内(方括号内)的任意字符。作为首字符的一个连字符或是结束方括号(]),则被视为列表的一部分。所有其他的meta字符也为列表的一部分。

以下只属于BRE:
/{n-m}
区间表达式,匹配在它之前的单个字符重现的次数区间。/{n/}指的是重复n次;/{n,/}则为至少出现n次重复,而/{n,m}为重现n至m次。
/( /)
将/(与/)间的模式存储在特殊的“保留空间”。最多可将9个独立的子模式存储在单个模式中。如/(ab/).*/1,指的是匹配于ab组合的两次重现。
/n
重复在/(与/)方括号内第n个子模式至此点的模式。n为1至9的数字,由左开始。

以下只属于ERE:
{n,m}
与先前提及的BRE的/{n,m/}一样,只不过方括号前没有反斜杠。
+
匹配前面正则表达式的1个或多个实例
?
匹配前面正则表达式的0个或1个实例
|
匹配于|符号前或后的正则表达式。
( )
匹配于方括号括起来的正则表达式群。

POSIX方括号表达式:
1、字符集
[:与:]
2、排序符号
[.与.]
3、等价字符集
[=
与=]

具体如下:
[:alnum:]
数字字符
[:alpha:]
字母字符
[:blank:]
空格与定位字符
[:cntrl:]
控制字符
[:digit:]
数字字符
[:graph:]
非空格字符
[:lower:]
小写字母字符
[:print:]
可显示的字符
[:punct:]
标点符号字符
[:space:]
空白字符
[:upper:]
大些字母字符
[:xdigit:]
十六进制数字

同时在使用时运算符存在顺序问题,以下是由高至地的:
BRE:
1、[. .] [= =] [: :]
2、/meta
3、[]
4、/( /) /digit
5、* /{ /}
6、无符号
7、^ $ .

ERE:
1、[. .] [= =] [: :]
2、/meta
3、[]
4、()
5、* + ? {}
6、无符号
7、^ $ .
8、|

可参考资料:
1、http://en.wikipedia.org/wiki/Regular_expression
2、http://www.regular-expressions.info/
3、http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html
4、http://www.ibm.com/developerworks/cn/aix/library/au-regexp/

正则表达式 POSIX标准 和 PCRE标准 ⏹正则表达式 POSIX标准 和 PCRE标准 阅读详情

相关推荐

【生产实践】SSH服务弱加密算法修复指南(附完整操作流程)

SSH服务弱加密算法漏洞修复方案 检测发现SSH服务存在支持弱加密算法漏洞,主要风险包括: 使用arcfour、aes128-cbc等易被破解的算法 面临密钥恢复、重放攻击等安全威胁 提供两种修复方案: 推荐方案:升级OpenSSH至最新版本 替代方案:修改SSH配置禁用弱算法(需注意可能影响旧客户端连接) 修复步骤: 编辑/etc/ssh/sshd_config 注释或删除弱算法配置 添加强加密算法(如aes128-ctr等) 重启SSH服务 注意事项: 建议先在测试环境验证 可能需配合客户端升级 操作前

SunMy的博客 3098

BRE与ERE的区别

POSIX 正则表达式   传统上,POSIX 定义了两种正则表达式语法, 即:基本正则表达式(BRE)和扩展正则表   达式(ERE)。大多数linux程序至少要符合BRE规范。 linux中,不同的程序支持的REGXP也不同,如sed只支持BRE的大部分,这主要是收到速度的限制。 sed编辑器要尽可能快的处理数据流中的文本。而grep可以支持ERE,不过要使用-E 选项。 gawk使

一口吃不了胖子 2999

雨流计数法的matlab实现,采用三点法与四点法

介绍雨流计数法是20世纪50年代由英国的两位工程师M.Matsuishi和T.Endo提出来的。该计数法的主要功能是把实测载荷历程简化为若干个载荷循环,供疲劳寿命估算和编制疲劳试验载荷谱使用。它以双参数法为基础,考虑了动强度(幅值)和静强度(均值)两个变量,符合疲劳载荷本身固有的特性。雨流计数法主要用于工程界,特别在疲劳寿命计算中运用非常广泛计数规则(1)雨流依次从载荷时间历程的峰值位置的内侧沿着...

u011391128的博客 3万+

Unix 正则表达式

 操作符用途 .(句号)匹配任意单个字符。 ^(脱字号)匹配出现在行首或字符串开始位置的空字符串。 $(美元符号)匹配出现在行末的空字符串。

PSS CRM (客户关系管理系统) 816

数字IC后端PPA优化实战:Timing一致性策略与Module Region布局技巧

本文深入探讨了数字IC后端设计中的PPA优化实战,重点解析了Timing一致性问题及其解决方案。通过调整Clock Uncertainty、Timing Derate和RC Scale Factor等关键参数,使Innovus等PR工具的分析结果更接近PrimeTime签核结果。同时,文章详细介绍了Module Region布局技巧,通过为关键模块划定物理区域,优化单元摆放,有效减少线延迟,从而协同提升时序收敛效率与设计可预测性。

weixin_29218963的博客 203

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

正则表达式梳理(unix)

   正则表达式(regular experience RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序中,正则表达式都被置于两个正斜杠之间。例如:/test/ 就是由正斜杠界定的正则表达式,它将匹配被查找的行中任何位置出现的相同模式。    正则表达式元字符    元字符是这样一类字符,它们表达的是不同于字面本身的含义。正则表达式元字符是由各种执行模式匹配操作的程序来解析,例如:sed、grep、awk等。    常用正则表达式的元字符如下: 元字符

4714

AD9826的时序分析及Verliog代码

AD9826的时序分析及Verliog代码 (本文对AD9826的模式和时序进行了分析,如有错误敬请指正,关于这款ADC芯片的基本参数,本文不做过多介绍) 1、AD9826的模式 AD9826的采样模式主要有两种,一种是“CDS模式”,一种是“SHA模式”;在这两种模式下分别有1通道、2通道、3通道的采样模式 (1)CDS模式 简单的来说CDS模式就是,有两个采样时钟,一个是ADCCLK1,用来采样CCD波形的参考电平,一个是ADCCLK2用来采样数据电平,然后经过,偏移量调节,再经过PGA增益放大最

m0_50102488的博客 6475

POSIX中的正则表达式

POSIX标准的正则表达式API由操作系统中的C标准库实现。在Linux系统中,有GNU C Library实现。 应用程序通过调用库函数实现正则表达式操作,无需与内核交互。

m0_72938142的博客 2284

【Qt开发】管理OpenGL上下文QOpenGLContext类及应用实践示例代码

QOpenGLContext 提供了一个简单、高效的接口来管理 OpenGL 上下文。本文详细介绍了 QOpenGLContext 的基本功能、常用方法、信号槽机制、高级应用技巧及常见问题的解决方法。通过这些介绍,读者可以更好地掌握和利用 QOpenGLContext 进行 OpenGL 渲染和管理实验。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1872

Linux----Ubuntu系统官网下载iso镜像文件

Linux----Ubuntu系统官网下载iso镜像文件

MQ0522的博客 5万+

POSIX风格正则表达式

From: http://blog.chinaunix.net/space.php?uid=20501242&do=blog&id=1940007 4.9  POSIX风格正则表达式 POSIX-Style Regular Expressions POSIX 你已经了解了正则表达式的基础知识,接下来我们可以讨论一下其细节。POSIX风格的正则表达式使用Unix地区系统(locale sy

JoeBlackZQQ的专栏 8766

Kriging克里金模型实现数据回归预测Matlab代码

Kriging克里金模型实现数据回归预测Matlab代码

天天酷科研的博客 604

正则表达式学习笔记之POSIX

POSIX规范          正则表达式liangdaliupai

Code_Thinking的专栏 2156

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言使用posix正则表达式库

在C语言中,你可以使用 POSIX 正则表达式库(regex.h)来进行正则表达式的模式匹配。POSIX 正则表达式库提供了一组函数来编译、执行和释放正则表达式。请注意,在使用 POSIX 正则表达式库时,需要根据返回值进行错误处理,例如检查编译是否成功、匹配是否发生等。

最后一个bug的博客 1172

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Shell中的正则表达式(POSIX标准正则表达式)

注:本文为《The Linux Command Line》正则表达式章节的笔记,引用了其中的大部分内容,转载请注明,本文标记为转载文章的转载地址为书籍网站地址 目录POSIX标准的正则表达式正则表达式的构成两种正则表达式基本正则表达式. 用于匹配任意一个字符^、$ 用于匹配锚点[] 用于匹配字符集中的一个,-用于表示一个字符集范围拓展正则表达式|从多个表达式中选择匹配项目限定符? 用于限定匹配零个或一个元素* 用于限定匹配零次或多次+用于限定匹配一次或多次{ } 用于限定匹配特定个数的元素Shell中的.

LHB6540的博客 1538

Linux正则表达式-POSIX字符类

POSIX标准对正则表达式字符和操作符的含义进行了形式化。这种标准定义了两类正则表达式:基本的正则表达式(BRE) , grep和sed使用这种正则表达式;扩展的正则表达式,egrep和awk使用这种正则表达式。 为了适应非英文的环境, POSIX标准增强了匹配不在英文字母表中的字符的字符类的功能。例如,法文è是一个字母字符,但是使用典型的字符类[a-z]不匹配它。该标准提供了附加的字母序列

xiyangyang052的专栏 1481

posix,perl正则表达式区别

1、正则表达式(Regular Expression,缩写为regexp,regex或regxp),又称正规表达式、正规表示式或常规表达式或正规化表示法或正规表示法,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串 。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容 。许多程序设计语言都支持利用正则表达式进行字符串操作。例...

dianfu2892的博客 383

POSIX 正则表达式

传统上,POSIX 定义了两种正则表达式语法, 即:基本正则表达式(BRE)和扩展正则表   达式(ERE)。     其中, BRE 定义的语法符号包括:     .       - 匹配任意一个字符。   []      - 字符集匹配,匹配方括号中定义的字符集之一。   [^]     - 字符集否定匹配,匹配没有在方括号中定义的字符。   ^       - 匹配开始位置。

txk15619567977的专栏 1439

POSIX基本正则表达式和扩展正则表达式的比较

19.7 POSIX基本正则表达式和扩展正则表达式的比较 在读者正觉得正则表达式已经复杂得不能再复杂时,又会发现POSIX规范将正则表达式的实现方法分为了两种:基本正则表达式(BRE)和扩展正则表达式(ERE)。到目前为止,我们所讨论的正则表达式的所有特性,都得到了兼容POSIX的应用程序的支持,并且都是以BRE的方式实现。grep命令就是这样的一个例子。 BRE和ERE到底有什么区别

MiltonZhong 1467

简述POSIX正则表达式

正则表达式(regular expression)是一种表示方式,在许多地方均有对此的支持,如命令grep、语言Python、工具vim等。但是这里仅讨论POSIX正则表达式,显然它与其他正则表达式(如传统的Unix正则表达式)存在稍许的差异。POSIX正则表达式分为:BRE(Basic Regular Expression)和ERE(Extended Regular Expressions)。以

liberize的专栏 1149

openGauss POSIX正则表达式

其中\min与\max是每种字符序对应的最大排序的字符编码,这样的转换保证我们转换出的索引条件一定是与like 'sdf%'等价的。也是由于这样的转换规则,通过explain打印执行计划的时候,会导致显示不够友好,索引条件中会出现不可视字符,并且由于填充长度可能会很长,会使得执行计划长度较大。如果一个串是正则表达式描述的正则集中的一员时, 我们就说这个串匹配该正则表达式。与LIKE不同,正则表达式允许匹配串里的任何位置,除非该正则表达式显式地挂接在串的开头或者结尾。不匹配正则表达式,大小写不敏感。

691
上一篇: DFA与NFA的终极比较
下一篇: Regular expression 与 GNU grep 的中文化
echo_qiang
博客等级 码龄16年 45粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值