day19_1 正则表达式匹配字符

一、正则表达式匹配字符

一般字符涵义说明
.匹配任意除换行符“\n”外的字符。在DOTALL模式中也能匹配换行符
\转义字符,使后一个字符改变原来的意思。如果字符串中有字符需要匹配,可以使用*或者字符集[]
[…]字符集(字符类)。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。第一个字符如果是则表示取反,如[abc]表示不是abc的其它字符
预定义字符集 (也可以卸载字符集[…]中)涵义说明
\d数字:[0-9]
\D非数字:[^\d]
\s空白字符:[<空格> \t \r \n \f \v]
\S非空白字符:[^\s]
\w单词字符:[A-Za-z0-9]
\W非单词字符:[^\w]
数量词说明
*匹配前一个字符0次或无限次(任意次数)
+匹配前一个字符1次或无限次(至少1次)
匹配前一个字符0次或1次(最多1次)
{N}匹配前一个字符N次
{M,N}匹配前一个字符M至N次(M小于N)
{,N}匹配前一个字符0至N次(最多N次)
{M,}匹配前一个字符M次至无限次(最少M次)
*? +? ?? {M,N}?使得* + ? {M,N}变成非贪婪模式(取最少的次数)
边界匹配(不消耗待匹配字符串中的字符)说明释义
^匹配字符串开头。在多行模式中匹配每一行的开头
$匹配字符串末尾。在多行模式中匹配每一行的末尾
\A仅仅匹配字符串开头
\Z仅仅匹配字符串末尾
\b匹配\w和\W之间
\B[^\b]
逻辑分组释义
||代表左右表达式任意匹配一个。它总是先尝试匹配左边的表达式,一旦成功则跳过匹配右边的表达式
(…)被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的左括号(,编号+1。另外,分组表达式作为一个整体,可以后接数量词。表达式中的|仅仅在该组中有效
(?p<名字>…)分组,除了原有的编号外再指定一个额外的别名
<number>引用编号为的分组匹配到的字符串。如r’(\d)abc\1’ 匹配:1abc1;5abc5
(?p=name)引用别名为的分组匹配到的字符串
特殊构造(不作为分组)释义
(?:…)(…)的不分组版本,用于使用’
(?iLmsux)iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个。
(?#…)#后的内容将作为注释被忽略
(?=…)=之后的字符串内容需要匹配表达式才能成功匹配。不消耗字符串内容
(?!..)!之后的字符串内容需要不匹配表达式才能成功匹配。不消耗字符串内容
(?<=…)之前的字符串内容需要匹配表达式才能成功匹配
(?<!..)之前的字符串内容需要不匹配表达式才能成功匹配。不消耗字符串内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值