正则表达式

正则表达式中,单纯的字符就是准确匹配,即必须完全一样。

常用的匹配模式:

  • \d:digit,匹配单个数字,相当于[0-9]
  • \D:non-digit,匹配非数字,相当于[^0-9]
  • \w:word,匹配单个数字或字母或下划线,相当于[A-Za-z0-9_]
  • \W:non-word,匹配非数字字母及下划线,相当于[^A-Za-z0-9]
  • \s:space and tab,匹配空格和Tab。
  • .:匹配单个任意字符。
  • [...]:匹配里面的任意某个模式,例如对于[abc],字符串a是匹配的。
  • [^ ]:匹配不匹配于方括号内模式的单个字符。
  • ^:匹配后面表达式作为字符串或行的开头的情况,例如^[hc]at,匹配hatcat,而且这个hatcat必须作为字符串或行开头。
  • $:匹配前面表达式作为字符串或行结尾的情况,例如[hc]at,匹配hatcat,并且hatcat必须作为字符串或行的结尾。
  • |:匹配前面或后面的表达式,例如abc|def匹配abc或者def

个数关键字:

  • *:匹配前面模式的个数为任意个(包括0个)
  • +:匹配前面模式的个数至少为1个
  • ?:匹配前面模式的个数为0个或1个
  • {n}:匹配前面模式的个数为n个
  • {n, m}:匹配前面模式的个数为n个到m个

因为*+可以匹配多个,而正则表达式默认为贪婪匹配,即匹配所有符合条件的字符,而这可能导致某些既符合*所代表的模式,也符合其之后的其他模式的字符无法被之后模式所识别。这种情况下可以添加?来转为非贪婪匹配,即匹配尽可能少的字符,例如\w+?

正则表达式中使用\字符进行转义。例如-如果在[]中处于首尾位置(如果处于开头需要在^后面),是作为普通字符处理;如果前后有其他字符的话是特殊字符,如果要作为普通字符需要转义处理\-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值