iOS开发中正则表达式的使用(一)

正则表达式每种语言都会接触到,本篇会介绍基本的正则表达式的概念,下篇文章会介绍在iOS开发中应用.

一,正则表达式的理解;

  1. 首先贴一张常用的正则表达式中常用的元字符表出来:
    基础元字符
    ^匹配开始的位置
    $匹配结束的位置
    .匹配除换行符(\n、\r)之外的任意字符
    \d匹配一个数字字符,等价于 "[0-9]";
    \D

    匹配任意非数字字符,等价于 "[^0-9]";

    \w匹配字母、数字、下划线;等价于 "[0-9a-zA-Z_]";
    \W

    匹配非字母、数字、下划线;等价于 "[^0-9a-zA-Z_]";

    修饰型元字符(修饰基础元字符)
    ()匹配括号内的字符串;
    |或表达式;例如 "1|2" 可以匹配 "1" 或者 "2";
    []

    字符集合;

    []可以匹配中括号内的任意单个字符;例如 "[123]" ,可以匹配 "1" 或 "2" 或 "3";

    [^]匹配未包含中括号内的任意字符;例如 "[^123]",可以匹配任意不是1或2或3的字符;

    [a-z]范围匹配,可以匹配 "a" 到 "z"之间的任意字符;

    [^a-z]匹配不在 "a" 到 "z" 之间的任意字符;

    修饰型元字符(修饰数量)
    \转义字符,处理特殊字符及保留字符,例如 "\n" 和 "." ,进行匹配需表示为 "\\n" 和 "\.";
    {}

    跟在基础表达式后面,修饰数量;

    {n}n为一个非负正数,表示匹配前面的字符n次;例如 "12{2}" 可以匹配 "122";

    {n,}n为一个非负正数,表示匹配前面的字符至少n次,例如 "12{2}" ,匹配不了 "12" ,可以匹配 "122222";

    {n,m}n为非负正数,且n<=m,最少匹配n次且最多匹配m次,例如 "12{2,3}" 只能匹配到 "122" 和 "1222"; 

    *匹配前面的表达式零次或多次,例如 "12*" 可以匹配 "12" , "122" , "1" 。等价于 "{0,}";
    +匹配前面的表达式一次或多次,例如 "12+" 可以匹配 "12" , "122" 。等价于 "{1,}";
    ?

    匹配前面的表达式零次或一次,例如 "12?" 可以匹配 "1" , "12" 。等价于 "{0,1}";

    当前面的字符为保留的元字符时,匹配模式为非贪婪模式。例如 "1*?" 会匹配 "11111" 里的单个 "1" ,而 "1*" ,则会默认匹配整个字符;

  2. 正则的匹配逻辑

    正则表达式匹配是按照字符串从左到右的顺序,进行单个字符的逐一匹配; 

            1、例如需要校验一段字符串是否为纯英文。

            首先纯英文字符串的特征是大写或小写,相应表达式为 "[a-zA-Z]";长度大于等于1,相应表达式为 "+";合起来就是 "^[a-zA-Z]+&"。"^" 和 "$" 用来匹配目标字符串开始和结束的位置。

            2、例如需要校验一段字符串视为为邮箱。

            邮箱的特征就是 "@" 前面至少有一个字符,可以是特殊字符,也可以是字母数字,相应表达式为 ".+';接着就是一个 "@" 字符,接着又是至少一个字符,这里是域名了,冷门的不管,这里限制是字母或者数字,相应表达式为 "[a-zA-Z0-9]+";接着就是一个 ".",注意 "."是正则里的保留字符,所以表达式为 "\.",接着就是域名后缀,这里限制为字母和数字,相应表达式为 "[a-zA-Z0-9]+"。合起来的表达式就是 "^.+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+$"。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值