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

  我个人认为,正则表达式的常规用法可以分为如下三个最基本的原则: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,并捕获文本到自动命名的组里

  (?exp) 匹配exp,并捕获文本到名为name的组里

  (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号

  零宽断言

  (?=exp) 匹配exp前面的位置

  (?<=exp) 匹配exp后面的位置

  (?!exp) 匹配后面跟的不是exp的位置

  (?

  注释

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

  反向引用

  \1 引用第一个分组子匹配

  \n 引用第n个分组子匹配

  \k 引用命名为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值。

(来源:程序员)

posted @ 2018-05-30 14:08  雷林鹏  阅读(285)  评论(0编辑  收藏  举报