继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php正则表达式的三个最基本原则分享

一只奥利奥的猫
关注TA
已关注
手记 62
粉丝 37
获赞 204
  • 我个人认为,正则表达式的常规用法可以分为如下三个最基本的原则:1、找谁、2、怎么找、3、找它干什么。
    接下来,我分享一下一个正则表达式分三个部分:
    原子字符
    . 匹配除换行符以外的任意字符
    \w 匹配一个字母或数字或下划线
    \s 匹配一个空白符
    \d 匹配一个数字
    \b 匹配单词的开始或结束的位置(匹配一个位置)
    ^ 匹配字符串的开始
    $ 匹配字符串的结束

    • 表示范围
      [] 匹配括号中的任意一个字符

      量词

    • 重复0次或更多次
    • 重复1次或更多次
      ? 重复0次或1次
      {n} 重复n次
      {n,} 重复n次或更多次
      {n,m} 重复n到m次

      反义
      \W \w取反
      \S \s取反
      \D \d取反
      \B \b取反
      [^x] 匹配除了x以为的任意一个字符
      [^abcde] 匹配除了abcde以为的任意一个字符

      分支
      | 表示分支,在[]中无效,匹配分支条件时,从左往右匹配,当匹配到某个分支时结束,不会再考虑后面的分支

      分组
      捕获
      (exp) 匹配exp,并捕获文本到自动命名的组里
      (?<name>exp) 匹配exp,并捕获文本到名为name的组里
      (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

      零宽断言
      (?=exp) 匹配exp前面的位置
      (?<=exp) 匹配exp后面的位置
      (?!exp) 匹配后面跟的不是exp的位置
      (?<!exp) 匹配前面不是exp的位置

      注释
      (?#comment) 提供注释辅助阅读,不对正则产生任何影响

      反向引用
      \1 引用第一个分组子匹配
      \n 引用第n个分组子匹配
      \k<name> 引用命名为name的分组子匹配

      懒惰模式
      *? 任意次
      +? 一次或多次
      ?? 0次或1次
      {m,n}? m-n之间
      {m,}? 至少m

      常用正则
      /^\d+$/ 非负整数
      /^[1-9]+[0-9]$/ 正整数
      /^-\d+$|0/ 非正整数
      /^-[1-9]+[0-9]
      $/ 负整数
      /^[\w-.]+@[\w-.]+(.[\w-]+)+$/ email地址
      <(.)>.<\/\1>|<. \/> html标签
      <[img|IMG].
      ?src=\'|\"[\'|\"].*?[\/]?>
      提取img标签的src值。

打开App,阅读手记
2人推荐
发表评论
随时随地看视频慕课网APP

热门评论

找谁?咋找?找他干啥?好好好的总结哦,感谢奥利奥猫的精彩分享!

查看全部评论