正则表达式基本语法(1)


这里将列出大部分常用的正则表达式元字符,以方便我们参考:

一、范围字符

操作符说明例子可以匹配的式子
.匹配除换行符以外的任意字符--
[ ]字符集,对单个字符给出取值范围[abc]a、b、c
[^ ]反义字符集,对单个字符给出排除范围[^abc]非a非b非c的单个字符
[a-z]字符范围,对单个字符给出取值范围[a-z]a、b、c、……、z
[^a-z]反义字符范围,对单个字符给出取值范围[^a-z]任意不是a、b、c、……、z的字符
|左右表达式任意一个 ,即“或者”,可以连用abc|def|ghiabc、def、ghi

二、重复限定符

操作符说明例子可以匹配的式子
*(贪婪字符)前一个字符0次或无限次扩展abc*ab、abc、abcc、abccc等等
+前一个字符1次或无限次扩展abc+abc、abcc、abccc等等
?(非贪婪字符)前一个字符0次或1次扩展abc?ab、abc
{m}扩展前一个字符m次ab{2}cabbc
{m,n}扩展前一个字符m至n次(含n)ab{1,3}cabc、abbc、abbbc
{m,}扩展前一个字符m次或更多次ab{2,}cabbc、abbbc、abbbbc等等
{,n}扩展前一个字符最多n次ab{,3}cac、abc、abbc、abbbc
( )分组标记,内部只能使用 | 操作符(abc)、(abc|def)abc;abc、def

三、可打印字符

操作符说明
\d匹配一个数字字符,等价于[0-9]
\D匹配一个非数字字符,等价于[^0-9]
\w匹配一个字母或数字或下划线字符,等价于[A-Za-z0-9_]
\W匹配一个非字母、数字、下划线字符,等价于[^A-Za-z0-9_]

四、非打印字符

操作符说明
\f匹配一个换页符
\n匹配一个换行符
\r匹配一个回车符
\s匹配任何空白字符,包括空格、制表符、换页符等等,等价于 [ \f\n\r\t\v]
\S匹配任何非空白字符,等价于 [^ \f\n\r\t\v]
\t匹配一个制表符
\v匹配一个垂直制表符

五、定位符

操作符说明例子可以匹配的式子
^匹配字符串开头^abc开头为abc的字符串
$匹配字符串结尾abc$结尾为abc的字符串
\b匹配一个单词边界,也就是指单词和空格间的位置de\b能匹配单词code,不能匹配单词founder
\B匹配非单词边界de\B不能匹配单词code,能匹配单词founder

六、转义字符

操作符说明例子可以匹配的式子
\ 转义字符,也可将特殊字符变成一般字符\n和\\换行符 和 \

七、贪婪匹配和懒惰匹配

1.贪婪匹配
一般默认采用贪婪匹配,即输出匹配最长的子串。
例如一个正则表达式ab.*d,匹配字符串abccdefdr,那么得到的结果将是abccdefd。这里得到的是最长的子串,这种匹配模式叫做贪婪匹配。

2.懒惰匹配
如果不希望匹配最长的字符串,而是想匹配最短的那个,那么我们需要将正则表达式改成ab.*?d,用来匹配字符串abccdefdr,那么得到的结果将是abccd。这种匹配模式我们称为最小匹配,也叫非贪婪匹配或懒惰匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值