TeaWeb中的正则表达式使用RE2语法

正则表达式
TeaWeb中的正则表达式使用RE2语法,可以在这里查看RE2文档。

以下摘录一些常用的正则表达式用法:

开始和结束
同其他正则表达式一样,可以使用^和$表示开始和结束:

^abc – 必须以abc开始
efg$ – 必须以efg结束
^abc.+efg$ – 匹配对象必须是以abc开始,efg结束
字符集
. – 点(.)符号表示匹配任何字符,包括换行符
[abc] – 字符集,表示匹配abc字符中的任何一个
[^abc] – 反向字符集,表示不匹配abc字符中的任何一个
\d – 数字字符集,相当于[0-9]
\D – 非数字字符集,相当于[^0-9]
\w – 单词字符集,相当于[0-9A-Za-z_]
\W – 非单词字符集,相当于[^0-9A-Za-z_]
\s – 空白字符集,相当于[\t\n\f\r ]
\S – 非空白字符集,相当于[^\t\n\f\r ]
\b – 单词边界
\B – 非单词边界
[[:alpha:]] – ASCII字符集
[[:^alpha:]] – 非ASCII字符集
\pN – Unicode字符集,只有一个字符
\p{Greek} – Unicode字符集
\PN – 非Unicode字符集,只有一个字符
\P{Greek} – 非Unicode字符集
组合
xy – x和y相邻,y紧跟x之后
x|y – x或y,遇到x即宣告匹配成功
重复
x* – 0或多个x,尽可能匹配最多的x
x+ – 1或多个x,尽可能匹配最多的x
x? – 0或1个x,尽可能匹配最多的x
x{n,m} – n到m个x,尽可能匹配最多的x
x{n,} – n个以上的x,包括n个x,尽可能匹配最多的x
x{n} – n个x
x*? – 0或多个x,尽可能匹配最少的x
x+? – 1或多个x,尽可能匹配最少的x
x?? – 0或1个x,尽可能匹配最少的x
x{n,m}? – n到m个x,尽可能匹配最少的x
x{n,}? – n个以上的x,包括n个x,尽可能匹配最少的x
x{n}? – n个x
分组
使用圆括号进行分组:

(re) – 编号从1开始,0表示全部匹配的内容
比如(hello)(world)匹配结果就有两个分组,编号分别为1和2
(?Pre) – 命名分组
比如使用(?P\w+)来匹配ZhangSan,那么myName对应的值就被定义为ZhangSan
(?:re) – 跳过分组
比如(?:hello)(world)匹配结果就只有一个分组(world),编号为1;因为hello这个分组被跳过
标记
在别的正则表达式中称之为修饰符(modifier):

i – 表示大小写 不 敏感
m – 多行匹配,如果有$结束字符的时候需要此标记
s – 让点符号(.)也匹配\n
U – 非贪婪模式,匹配结果尽可能少地匹配
使用(?FLAG)或(?:FLAG)语法来使用这些标记,并且这里的括号并不会产生新的分组:

(?i)hello
(?i:hello)
以上两个表达式都表示大小写不敏感,所以HELLO、Hello、hello都认为匹配成功。
转义字符
使用反斜杠表示转义字符,用来表示某个字符是原始的字符,而不是正则表达式,比如匹配文件扩展名:

\.(php|asp|jsp|py)
中的点(.)因为在正则表达式中有别的意义,所以需要用反斜杠转义。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

栗子博客 软件 TeaWeb中的正则表达式使用RE2语法 https://www.lizi.tw/soft/18827.html

建筑工地上施工员,闲暇时弄个博客打发时间,

常见问题
  • 1、杰齐1.7仅适用于PHP5.2 2、需Zend支持 3、尽量使用宝塔面板 4、尽量使用Windows 系统,关关对Linux支持不太友好。
查看详情

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

TeaWeb中的正则表达式使用RE2语法-海报

分享本文封面