正则表达式关键点汇总
扩展正则表达式
扩展正则表达式就是在基本正则表达式的基础上,增加了一些元字符,而且有部分参数是不需要添加转义符使用的。 字符匹配
代码
说明
.
匹配任意单个字符
[ ]
匹配范围内的任意单个字符
[^ ]
匹配范围外的任意单个字符 字符串不匹配
否定顺序环视: (?!(unfavored|unwanted)) (?![a-z]*(unfavored|unwanted))[a-z]{,12} (?![a-z]*(unfavored|unwanted))
例如:
不匹配baidu: ^(?!baidu).*$ 匹配次数
代码
说明
*
匹配前面的字符任意次(0、1、或多次);
.*
任意长度的任意字符;
+
匹配前面的字符至少1次
?
匹配前面的字符0次或者1次,即前面的字符可有可无;
{m}
其前面的字符出现m次,m为非负整数;
{m,n}
其前面字符出现最少m次最多n次,{m,}最少m次,{o,n}最多n次 位置锚定
代码
说明
^
行首
$
行尾
<, b
词首
>,b
词尾 分组及引用
代码
说明
( )
分组
1,2,…
后向引用
注意:特殊用法 C|cat:表示C或cat ,表示整个左侧或整个右侧。 (C|c)at:表示Cat或cat 其他
列出几个扩展特殊符号:
代码
说明
于 . * 作用类似,表示 一个或多个重复字符。
?
于 . * 作用类似,表示0个或一个字符。
表示或关系,比如 "gd
()
将部分内容合成一个单元组(abc
比如 要搜索 glad 或 good 可以这样 "g(la
oo)d" ()的好处是可以对小组使用 + ? * 等。
比如要搜索A和C开头结尾,中间有至少一个(xyz) 的串,可以这样 : "A(xyz)+C" 正则表达式元字符元字符普通转义
代码
说明
.
匹配除换行符以外的任意字符
w
匹配字母或数字或下划线或汉字
s
匹配任意的空白符
d
匹配数字
b
匹配单词的开始或结束
^
匹配字符串的开始
$
匹配字符串的结束 特殊字符转移义
比如[,可以使用[,如果[不好使,可以试试[,这个在不同命令中不一样,awk -F "" 中必须是[ 重复次数
代码
说明
*
重复零次或更多次
+
重复一次或更多次
?
重复零次或一次
{n}
重复n次
{n,}
重复n次或更多次
{n,m}
重复n到m次 反义
代码
说明
W
匹配任意不是字母,数字,下划线,汉字的字符
S
匹配任意不是空白符的字符
D
匹配任意非数字的字符
B
匹配不是单词开头或结束的位置
[^x]
匹配除了x以外的任意字符
[^aeiou]
匹配除了aeiou这几个字母以外的任意字符 其他
代码
说明
a
报警字符(打印它的效果是电脑嘀一声)
b
通常是单词分界位置,但如果在字符类里使用代表退格
制表符,Tab
r
回车
v
竖向制表符
f
换页符
换行符
e
Escape
nn
ASCII代码中八进制代码为nn的字符
xnn
ASCII代码中十六进制代码为nn的字符
unnnn
Unicode代码中十六进制代码为nnnn的字符
cN
ASCII控制字符。比如cC代表Ctrl+C
A
字符串开头(类似^,但不受处理多行选项的影响)
Z
字符串结尾或行尾(不受处理多行选项的影响)
z
字符串结尾(类似$,但不受处理多行选项的影响)
G
当前搜索的开头
p{name}
Unicode中命名为name的字符类,例如p{IsGreek}
(?>exp)
贪婪子表达式
(?-exp)
平衡组
(?im-nsx:exp)
在子表达式exp中改变处理选项
(?im-nsx)
为表达式后面的部分改变处理选项
(?(exp)yes|no)
把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no
(?(exp)yes)
同上,只是使用空表达式作为no
(?(name)yes|no)
如果命名为name的组捕获到了内容,使用yes作为表达式;否则使用no
(?(name)yes)
同上,只是使用空表达式作为no (括号)、[中括号]、{大括号}的区别小结
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(s*)表示连续空格的字符串。
[]是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[s*]表示空格或者 号。
{}一般用来表示匹配的长度,比如 s{3} 表示匹配三个空格,s[1,3]表示匹配一到三个空格。
(0-9) 匹配 "0-9′ 本身。 [0-9] 匹配数字(注意后面有 *,可以为空)[0-9]+ 匹配数字(注意后面有 +,不可以为空){1-9} 写法错误。
[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
大括号{次数}可以用于小括号前,类似:(分组匹配){次数} 这种
例如:在PHP中过滤内容里面有数字或空格数字 preg_replace("/d{1,}s{0,1}/", "xxxxxxxx", $signaturecontent);
怎么利用微信小程序赚钱?方法简单吗?生活中处处是商机,微信在几年前还只是一个社交工具,但是随着微信小程序的出现,越来越多的商家将商业目光放在了微信小程序上,微信小程序凭借其即用即走的优势受到各行业商家的青睐。很多商家
微信小程序开店靠谱吗?如何选择小程序制作平台呢?自2017年小程序推出至今,到如今,已经发展4年之久,小程序开店的热度一直不减当年,其实都是又原因呢?毕竟没有一个商家愿意一直投入在不靠谱的项目上,能坚持那么久,还是因为小程序能帮
微信小程序交易额再创新高,商家应该如何玩转微信营销?微信在如今俨然已经成为了人们日常生活中不可或缺的一部分,不但可以社交,还能在微信上开店卖货,实现经济独立。据统计,2020年通过小程序产生的交易额与19年相比,增长了8000亿,再
realmeXT印度正式发布,6400万四摄屏下指纹近日,realme正式在印度发布了新机realmeXT。Realme暗示12月将举办一场活动,预告海报上写着12月更多惊喜,并且公布了升级版预告。RealmeXT智能手机采用高通骁
这款屏占比超高的vivoNEX3强势来袭,现已可以预定9月的手机市场可谓是热闹非凡,新机不断。iPhone11华为Mate30OPPOReno2,但有一款手机,绝对是手机届的新宠。这就是vivoNEX3手机,v今年首部屏占比接近100
帅气酷炫如纹身贴一样的可穿戴技术你见过吗?美国卡耐基梅隆大学的研究人员研究出了一款智能可穿戴设备,可以像纹身贴一样贴在身上。这种技术名为ElectroDermis,是该校SoftMachinesLab和MorphingMa
大连联通圣亚5G体验厅正式落成五一劳动节当天,大连联通在大连圣亚海洋世界的5G体验厅和王一博快闪店正式对外开放,大连联通公司副总经理于杰政企客户中心陈国宏经理王俊武副经理与圣亚高层领导一同为大连联通5G圣亚体验
一张身份证可以办几张手机卡?一证五户,顾名思义指的是同一用户在一个运营商拥有号码的上限数量为5个。再详细点来说就是同一身份证号码,在全国范围内可办理的联通号码不超过5个。要点一同一身份证号,包含二代身份证临时
基站天线天天见,它到底长啥样?基站天线天天见,你一定很好奇它到底长啥样吧?基本原理天线的基本原理是导线上有交变电流流动时,就会产生电磁波辐射。若两导线的距离很近,电场被束缚在两导线之间,辐射很弱将两导线张开电场
微信能设置两个头像了,快试试很多小伙伴都知道,微信隐藏双头像的玩法早已被官方屏蔽。但想让微信同时拥有两个头像也不是不可能,今天给大家带来一款小工具,就能让你的微信头像同时设置两张图片,特别适合小情侣使用。制作
2021年中国婴童新锐品牌营销增长白皮书婴童品牌丨洞察报告核心摘要本篇报告通过分析中国婴童消费市场的品牌竞争情况和营销痛点,结合用户数据洞察为母婴新锐品牌的营销方向提供参考,并通过垂直母婴平台的典型营销案例,为新锐品牌提