关于正则表达式


转载请说明出处!!!

作者:上官轩言


限定符!

(?)--匹配该元字符的前一个字符0次或1次

#use a used variable name is illegal used?--d可有可无,可以使用该表达式去匹配use和used这个两单词

(*)--匹配该元字符的前一个字符任意次数(包括0次)

#ac abc abbbbbc adc adddddc abc--*规定了a和c中间b可以没有,也可以出现多次。

(+)--匹配出现[1]次以上的字符 #ac abc abbbbbc adc adddddc ab+c--+规定了a和c中间b不可以没有,必须出现一次以上。

注:如果想要指定b出现的次数,可以使用{},在大括号里规定b出现的次数,{}可以允许输入一个范围,如2~6则输入{2,6},如果想输入2次以上则{2,}

#如果想表示多个字符的重复则将所想要的字符用()括起来 再在后面添加限定符号 “或”运算!

(|)--将匹配条件进行逻辑或运算 #a cat a dog a bird a(cat|dog)--|用来分割匹配的内容,前面会先去匹配a,括号内则匹配cat或者dog

字符类!

[]--字符集,范围内的所有字符都能被匹配

#abc tiger aabbcc dog [abc]+--匹配由abc三个字符组成的单词(含有abc三个字符的单词)

#可以指定字符的范围

  1. [a-z]代表所有的小写英文字符
  2. [a-zA-Z]代表所有的小写英文字符
  3. [0-9]代表所有的英文字符和数字
  4. [^0~9]代表所有的非数字字符(包括换行符)

元字符!

元字符(大多数都以反斜杠开头)

\d--数字字符

\w--"单词"字符(英文、数字及下划线)

\s--空白符(包含Tab和换行符)

\D--非数字字符

\W--非单词字符

\S--非空白字符

\b--代表单词字符的边界

.看清楚了,这是一个点!!!!)--代表任意字符(但不包括换行符)

^--匹配首行$--匹配行尾

#^a只会去匹配行首的a,a$只会去匹配行尾的a

#高级概念

#贪婪与懒惰匹配 <.+>--匹配所有(在+后面加上?)

#<b>This is a sample text<b>(?会将默认的贪婪匹配[Gready Match]切换为懒惰匹配[Lazy Match])

实例

实例1-- 匹配RGB颜色值

#00

#ffffff

#ffaaff

#00hh00

#aabbcc

#000000

#ffffffff

匹配--#[a-fA-F0-9]{6}\b(\b避免#ffffffff被识别成RGB颜色值)

实例2--IPv4地址匹配

123

255.255.255.0

192.168.0.1

0.0.0.0

256.1.1.1

This is a string

123.123.0

匹配--\d+.\d+.\d+.\d+(\b+会匹配任何长度大于1的数字,.代表.这个字面量,因为.是特殊字符,需要用反斜杠作转义)

改良--\b(25[0-5]|2[0-4]\d|[01]?\d\d?(IPv4地址匹配每一部分也可以由两位数字构成).){3}(重复匹配三次)(25[0-5]|2[0-4]\d|[01]?\d\d?)\b(匹配字符边界)

总结!!!

限定符(Quantifier)
  1. a* --a出现0次或多次
  2. a+ --a出现1次或多次
  3. a? --a出现0次或1次
  4. a{6} --a出现6次
  5. a{2,6} --a出现2-6次
  6. a{2,} --a出现2次以上
或运算符(OR Operator)
  1. (a|b)--匹配a或者b
  2. (ab)|(cd)--匹配ab或者bc
字符类(Character Classes)
  1. [abc]--匹配a或者b或者c
  2. [a-c]--同上
  3. [a-zA-Z0-9]--匹配小写+大写英文字符以及数字
  4. 0-9--匹配非数字字符
元字符(Meta-characters)
  1. \d--匹配数字字符
  2. \D--匹配非数字字符
  3. \w--匹配"单词"字符(英文、数字及下划线)
  4. \W--匹配非单词字符
  5. \s--匹配空白符(包含Tab和换行符)
  6. \S--匹配非空白字符
  7. \bword\b--\b标注字符的边界(全字匹配)
  8. ^匹配首行$匹配行尾
贪婪/懒惰匹配(Greedy/Lazy Match)
  • <.+>默认贪婪匹配"任意字符"
  • <.+?>懒惰匹配"任意字符"
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值