正则表达式入门小结

正则表达式语言由俩种基本字符组成:元字符和普通字符。
元字符,即特殊符号,并不代表本身的字符意义,根据其在正则表达式语言中代表的特殊含义来匹配目标字符。
普通字符,即代表本身的字符意义,如1-9,a-z等。

1、基础且常用的特殊字符小结

                    代表匹配次数的元字符

{n}重复n次
{n,m}重复n到m次
a?字符 a <=1次,相当于a{0,1}
a+字符a >=1次,相当于a{1,}
a*字符a >=0次,相当于a{0,}
( )匹配目标值的分组,每个组自动有组号,从左到右组号为1,2,3...
a{4}
a{1,5}
匹配字符a 长度为4次
匹配字符a 长度1~5次
a.*b贪婪模式,匹配a和b之间的所有字符
a.*?b懒惰模式,尽量少的匹配a和b之间的字符,最少为ab
*?重复任意次,但尽可能少重复
+?重复1次或更多次,但尽可能少重复
??重复0次或1次,但尽可能少重复
{n,m}?重复n到m次,但尽可能少重复
{n, }?重复n次以上,但尽可能少重复

                    代表匹配具体字符

.匹配除换行符以外的任意字符
\w任意一个字母、数字或下划线,即A~Z,a~z,0~9,_
\W任意一个非字母或数字或下划线的字符
\s任意一个空格、制表符、换页符等空白字符
\S任意一个非空白符的字符
\d0~9任意一个数字
\D任意一个非数字
\b代表字符在单词的开始或结束位置,
如\bF,c\b  代表以F开头的单词或c结尾的单词
\B代表字符在非单词开始或结束位置,
如\Bz. 匹配"add czppp",结果是zp
[a-k0-9]a~k之间任意一个字符 或 0~9之间任意一个数字,[]代表范围内的字符
[^fuk]匹配f、u或k之外的任意一个字符,[^ ] 代表除..之外的字符
^a匹配的字符a在最开头位置
a$匹配的字符a在末尾位置

                转义字符

\r代表回车符
\n代表换行符
\t代表制表符

2、元字符规律小结

  • \与小写字母组合代表所包含意义匹配字符,大写字母即变成取反,如\d、\D 或 \w、\W。
  • 元字符与?组合,均是尽可能少的匹配,如+? 或 *? 或 ?? 或 {5,}? 。
  • 要元字符代表普通字符,需要再元字符前加\。如\^ 或 \$ 或 \* 等。

3、参考例子及练习

  • 贪婪模式&懒惰模式参考
当有字符串:aabab
① a.*b 匹配到的是:aabab(贪婪模式)
② a.*?b 匹配到的是:aab及ab(懒惰模式)
③ a.+?b匹配到的是:aab
  • 在“where are you"中匹配单词are
\bare\b
  • 输入的字符在a-g之间并且最大长度为3最小长度为1
[a-g]{1,3}
  • 匹配3位区号-8位电话号码,如010-12345678
^\d{3}-\d{8}$
  • 验证最小长度为3最大长度为7的数字
\d{3,7}
  • 验证如INV190203 或 inv820830,前3位不区分大小写的英文字母,剩余8位是数字
[a-zA-Z]{3}\d{8}
  • 匹配常用URL规则(以www开头,域名是字母数字,长度1-15,以.com或者.org结束)
^www[.][a-zA-Z\d]{1,15}[.](com|org)$
  • 匹配常用email规则(字母数字下划线,长度3-15)@(字母数字,长度2~4).(字母,长度2~4)
^\w{3,15}@[a-zA-Z\d]{2,4}\.[a-zA-Z]{2,4}$
  • 验证值在0-25的数字
(([0-9])|([0-1][0-9])|([0-2][0-5]))$
  • 验证格式为 YYYY/MM/DD 或 YYYY-MM-DD 或 YYYY.MM.DD 的日期
① 年YYYY允许用户输入年份1900-2099.:(19\d\d|20\d\d)
②月MM允许输入01~12或者1~12:(\d|0\d|1[0-2])
③日DD允许输入01~31或者1~31:(\d|0\d|1\d|2\d|3[0-1])
④连接符:[-/.]
结果如下:
^(19\d\d|20\d\d)[-/.](\d|0\d|1[0-2])[-/.](\d|0\d|1\d|2\d|3[0-1])$

 

 

转载于:https://www.cnblogs.com/cheerjude/p/10115446.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值