(API)正则表达式

3.正则表达式

1.简介

  • 正则表达式是由普通字符(如英文字母)以及特殊字符(也称为元字符)组成的文字模式

  • 正则表达式基本书写符号

    符号含义示例解释匹配输入
    \转义符*符号“*”*
    [ ]可接收的字符列表[efgh]e、f、g、h中的任意1个字符e、f、g、h
    [^ ]不接收的字符列表[^abc]除a、b、c之外的任意1个字符,包括数字和特殊符号m、q、5、*
    |匹配“|”之前或之后的表达式ab|cdab或者cdab、cd
    ( )将子表达式分组(abc)将字符串abc作为一组abc
    -连字符A-Z任意单个大写字母大写字母
  • 正则表达式限定符

    • 限定符将可选数量的数据添加到正则表达式,下表为常用限定符:

      符号含义示例解释匹配输入不匹配输入
      *指定字符重复0次或n次(abc)*仅包含任意个abc的字符串,等效于\w*abc、abcabcabca、abca
      +指定字符重复1次或n次m+(abc)*以至少1个m开头,后接任意个abc的字符串m、mabc、mabcabcma、abc
      指定字符重复0次或1次m+abc?以至少1个m开头,后接ab或abc的字符串mab、mabc、mmmab、mmabcab、abc、mabcc
      {n}只能输入n个字符[abcd]{3}由abcd中字母组成的任意长度为3的字符串abc、dbc、adca、aa、dcbd
  • 常用的限定符

    符号含义示例解释匹配输入不匹配输入
    {n,}指定至少 n 个匹配[abcd]{3,}由abcd中字母组成的任意长度不小于3的字符串aab、dbc、aaabdca、cd、bb
    {n,m}指定至少 n 个但不多于 m 个匹配[abcd]{3,5}由abcd中字母组成的任意长度不小于3,不大于5的字符串abc、abcd、aaaaa、bcdabab、ababab、a
    ^指定起始字符^[0-9]+[a-z]*以至少1个数字开头,后接任意个小写字母的字符串123、6aa、555edfabc、aaa、a33
    $指定结束字符^[0-9]-[a-z]+$以1个数字开头后接连字符“–”,并以至少1个小写字母结尾的字符串2-a、3-ddd、5-efg33a、8-、7-Ab

  • 匹配字符集

    • 匹配字符集是预定义的用于正则表达式中的符号集。如果字符串与字符集中的任何一个字符相匹配,它就会找到这个匹配项。

      符号含义示例解释匹配输入不匹配输入
      .匹配除 \n 以外的任何字符a..b以a开头,b结尾,中间包括2个任意字符的长度为4的字符串aaab、aefb、a35b、a#*bab、aaaa、a347b
      \d匹配单个数字字符,相当于[0-9]\d{3}(\d)?包含3个或4个数字的字符串123、987612、01023
      \D匹配单个非数字字符,相当于0-9\D(\d)*以单个非数字字符开头,后接任意个数字字符串a、A342aa、AA78、1234
      \w匹配单个数字、大小写字母字符,相当于[0-9a-zA-Z]\d{3}\w{4}以3个数字字符开头的长度为7的数字字母字符串234abcd、12345Pe58a、Ra46
      \W匹配单个非数字、大小写字母字符,相当于0-9a-zA-Z\W+\d{2}以至少1个非数字字母字符开头,2个数字字符结尾的字符串#29、#?@1023、#?@100

2.应用

  • 正则表达式举例

    • 非负整数:“^\d+$ ”

    • 正整数: “ ^[0-9]1-9$”

    • 非正整数: “ ^((-\d+)|(0+))$”

    • 整数: “ ^-?\d+$”

    • 英文字符串: “ ^[A-Za-z]+$”

    • 英文字符数字串: “ ^[A-Za-z0-9]+$”

    • 英数字加下划线串: “^\w+$”

    • E-mail地址:“^[\w-]+(.[\w-]+)*@[\w-]+(.[\w-]+)+$” *

    • URL:“^[a-zA-Z]+://(\w+(-\w+))(.(\w+(-\w+)))(\?\s)?$”

3.综合案例

  • 实例1

    • 这个号码的格式是999-99-9999。用来匹配它的正则表达式。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。

  • 实例2

    • 假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上一个数量限定符号,

  • “否”符号

    • “^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符。例如,图四的正则表达式匹配所有单词,但以“X”字母开头的单词除外。

  • 圆括号和空白符号

    • 假设要从格式为“June 26, 1951”的生日日期中提取出月份部分,用来匹配该日期的正则表达式可以如图所示:

    • “\s”符号是空白符号,匹配所有的空白字符,包括Tab字符。如果字符串正确匹配,接下来如何提取出月份部分呢?只需在月份周围加上一个圆括号创建一个组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值