正则表达式

本文介绍了正则表达式的基础知识,包括限定符如?*+和花括号用于控制字符重复,或运算符(a|b)实现选择性匹配,字符类[abc]+匹配特定字符,元字符dDwWsS及^.此外,还讲解了贪婪与懒惰匹配的概念,帮助程序员更精确地进行字符串匹配。
摘要由CSDN通过智能技术生成

能够帮程序员匹配指定规则的字符串

1.限定符
  • 代表?前面的字符需要出现0次或一次       eg: used?, d可有可无,可以匹配 use,used
  • 会匹配0个或多个字符   eg: ab*c,b可以没有,也可以出现多次,可以匹配ac, abc, abbbbc,abbbbbbbbc等
  • 会匹配出现>=1次的字符  eg:ab+c, b出现的次数要>=1,可以匹配abc,abbbc,abbbbc等。如果想要做到更加精确的匹配,可以使用花括号,这就允许我们输入一个范围。比如要指定b出现的次数为6次,可以写成 ab{6}c ;  比如希望字符出现的次数为2-6之间,可以写成 ab{2,6}c ,可以匹配abbc,abbbc,abbbbc,abbbbbc,abbbbbbc; 如果希望字符出现的次数>=2,可以写成 ab{2,}c 
  • 以上限定匹配的是一个字符,若要匹配多个字符的重复,可以用()。eg: (ab)+, ab出现的次数>=1, 可以匹配ab, abab,abc,abbc等
2.“或”运算符

(a|b) 匹配a或b

(ab)|(cd) 匹配ab或cd

 

 3.字符类

比如我们想匹配由abc这几个字母构成的单词,可以用 [abc]+ ,方括号里的内容代表要求匹配的字符只能取自它们

在方括号里指定字符的范围:比如 [a-z]+ 代表所有小写英文字符;[a-zA-Z]+代表所有英文字母;[a-zA-Z0-9]+ 代表所有英文字符和数字

如果在 [ ] 前面写一个 ^(脱字符),代表要求匹配除了 ^ 后面列出的 [ ] 以外的字符,比如 [^0-9]代表所有的非数字字符(包括换行符)

4.元字符

正则表达式中的大多元字符都是以 \ 开头。\d+ 代表数字字符,等同于[0-9]+ ;\D+ 代表非数字字符 ;\w+ 代表单词字符,(包括所有的英文字符,数字和下划线) ;\W+ 代表非单纯字符 ;\s+ 代表空白符(包括tab制表符和换行符);\S+ 代表非空白字符

 " . " 代表任意字符,但不包括换行符

 

 

^匹配行首

$匹配行尾

 \b 标注字符边界(全字匹配)

 

  

 5.贪婪与懒惰匹配
  • <.+>默认贪婪匹配“任意字符”
  • <.+?>懒惰匹配“任意字符”

之前说到的  * + { } 在匹配字符串的时候,默认会匹配尽可能多的字符

 

 <.+>这个表达式会把整个字符串全部匹配,如果想要匹配< >里的内容,可以写成<.+?>,这样会将正则表达式中默认的贪婪匹配(greedy match)切换为懒惰匹配(lazy match)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值