正则表达式

正则表达式

正则表达式:匹配字符串内容的一种规则

  • 字符组 : [字符组]

    在同一个位置可能出现的各种字符组成的字符组,在正则表达式中用[]表示。

    • [0-9]:表示匹配0到9中的任意一个数字
    • [A-Z]:匹配任意一个大写字母
    • [A-Za-z0-9] :匹配一个数字或字母
  • 字符

    元字符匹配内容
    .匹配除换行符以外的任意字符
    \w匹配字母或数字或下划线 (word)
    \s匹配任意的空白符 (space)
    \d匹配数字 (digit)
    \n匹配一个换行符
    \t匹配一个制表符
    \b匹配一个单词的结尾 o\b可以匹配到hello单词的末尾字母’o’
    ^匹配字符串的开始
    $匹配字符串的结尾
    \W匹配非字母或数字或下划线
    \D匹配非数
    \S匹配非空白
    a|b匹配字符串a或字符串b,从左到右匹配,只要匹配上就不再匹配了,如ab|abc,当字符串中有abc时,由于匹配到了ab,所以不再往后匹配字母c了,所以一般把长的字符串放在前面
    ()匹配括号内的表达式,也表示一个组
    [...]匹配字符组中的字符
    [^...]匹配除了字符组中字符的所有字符
  • 量词

    量词说明
    *重复零次或多次
    +重复一次或多次
    ?重复零次或一次
    {n}重复n次
    {n,}重复n次或以上
    {n,m}重复n到m次

    量词只约束紧跟者他的前一个元字符。

正则待匹配字符匹配结果说明
x.?xabx123x9876xxa
x1
x9
x
?表示重复零次或一次,即只匹配"李"后面任意一个或零个字符(尽可能多的匹配)
x.*xabx123x9876xabx123x9876*表示重复零次或多次,即匹配"李"后面0或多个任意字符(尽可能多的匹配)
x.+xabx123x9876xabx123x9876+表示重复一次或多次,即只匹配"李"后面1个或多个任意字符(尽可能多的匹配)
x.{1,2}xabx123x9876xab
x12
x98
{1,2}匹配1到2次任意字符(尽可能多的匹配,也就是尽可能匹配2个字符)

如果在后面加上问号?,就会尽可能少的匹配

正则待匹配字符匹配结果说明
x.??xabx123x9876x
x
x
x
第一个?表示重复零次或一次,即只匹配"李"后面任意一个或零个字符,第二个问号表示匹配0个字符
x.*?xabx123x9876x
x
x
*表示重复零次或多次,即匹配"李"后面0或多个任意字符,加问号后只匹配0个字符
x.+?xabx123x9876xa
x1
x9
+表示重复一次或多次,即只匹配"李"后面1个或多个任意字符,加问号后只匹配1个字符
x.{1,2}?xabx123x9876xa
x1
x9
{1,2}匹配1到2次任意字符,加问号后只匹配1个字符
  • 转义符/

    正则待匹配字符匹配 结果说明
    //n/nTrue因为在正则表达式中/是有特殊意义的字符,所以要匹配/n本身,用表达式/n无法匹配,需要再加上一个/
  • 贪婪匹配

    贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配,加?后就是非贪婪匹配

    正则待匹配字符匹配 结果说明
    x.*yabcxskfyabxcyxskfyabxcy默认为贪婪匹配模式,会匹配尽量长的字符串
    x.*?yabcxskfyabxcyxskfy
    xcy
    非贪婪匹配模式,会匹配尽量短的字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值