正则表达式基础语法

原创 2016年08月31日 10:44:59

这篇文章主要记录了正则表达式的一些基本语法、修正模式和php常用的正则表达式函数!

一、正则表达式基本语法:

  • 界定符

  • 原子

  • 元字符

  • 量词

  • 边界控制

  • 模式单元

1. 界定符

表示一个正则表达式的开始和结束。(如:/[0-9]/#[0-9]#或{[0-9]})
一般使用/或#作为界定符,不建议用{}

2. 原子

(1)可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
     如:标点;"_?.等,英文字母数字a-z A-Z 0-9,其他可见字符等
(2)不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
     如:换行符\n,回车\r,制表符\t,空格,其他不可见符号

3. 元字符

(1)原子的筛选方式:
    |   匹配两个或者多个分支选择;
    []  匹配方括号中的任意一个原子;
    [^] 匹配除方括号中的原子之外的任意字符;

(2)原子的集合:
    .   匹配除换行符之外的任意字符,即[^\n];
    \d  匹配任意一个十进制数字,即[0-9];
    \D  匹配任意一个非十进制数字,即[^0-9];
    \s  匹配一个不可见原子,即[\f\n\r\t\v];
    \S  匹配一个可见原子,即[^\f\n\r\t\v];
    \w  匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_];
    \W  匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z_];

4. 量词

{n}   表示其前面的原子恰好出现n次;
{n,}  表示其前面的原子最少出现n次;
{n,m} 表示其前面的原子最少出现n次,最多出现m次;
*     匹配0次、1次或者多次其之前的原子,即{0,};
+     匹配1次或者多次其之前的原子,即{1,};
?     匹配0次或者1次其之前的原子,即{0,1};

5. 边界控制

^  匹配字符串开始的位置;
$  匹配字符串结尾的位置;

6. 模式单元

()  匹配其中的整体为一个原子;

二、模式修正:

1.懒惰匹配与贪婪匹配

(1)  贪婪匹配:匹配结果存在歧义时取其长(默认为贪婪模式)
(2)  懒惰匹配:匹配结果存在歧义时取其短(懒惰模式标识:U  即:只需要在正则表达式的末尾加上U  如:/so.+234/U)

2.常见修正模式

U  懒惰匹配;
i  忽略英文字母大小写;
x  忽略空白;
s  让元字符'.'匹配包括换行符在内的所有字符;
e  配合函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行;

三、PHP中常用的正则表达式函数:

1. preg_match()与preg_match_all()

preg_match($pattern,$subject,[array &matches])
    第三个参数是传递引用,参数可选;
    preg_match()只会在$subject中匹配一次;
    return 匹配的次数(0次或1次)
preg_match_all($pattern,$subject,array &matches)
    第三个参数是传递引用,参数必填;
    preg_match_all()会把$subject中所有符合的匹配出来;
    return 匹配的次数(0次或多次)

2. preg_replace()与preg_filter()

preg_replace($pattern,$replacement,$subject)
    return 返回被替换后的结果,(当为数组集时:不管替换部分和没有替换部分都会返回);
preg_filter($pattern,$replacement,$subject)
    return 返回替换后的结果,(当为数组集时:只保留被替换过的,没有替换的部分不返回;)

3. preg_grep()

preg_grep($pattern,array $input)
    return 只返回被匹配到的结果集,没有匹配到的就过滤掉不返回

4. preg_split()

preg_split($pattern,$subject)
    return 用匹配到的结果去截取字符串,将截取后的结果返回;

5. preg_quote()

preg_quote($str)
    正则运算符转义,如: .\+*?[^]$(){}=!<>|:-
版权声明:本文为博主原创文章,未经博主允许不得转载。

正则表达式基础语法

“正则表达式”描述在搜索文本正文时要匹配的一个或多个字符串。 该表达式可用作一个将字符模式与要搜索的字符串相匹配的模板。 正则表达式包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014年01月08日 09:46
  • 747

正则表达式之通用字符簇

  [[:alpha:]] 任何字母   [[:digit:]] 任何数字   [[:alnum:]] 任何字母和数字   [[:space:]] 任何白字符   [[:upper:]] 任何大写字母...
  • kevinsin
  • kevinsin
  • 2005年04月21日 12:33
  • 731

正则表达式基础语法以及示例

正则表达式 一:什么是正则表达式 是记录文本规则的代码 二:常用的元字符 \d \D \b \W \S...
  • cuimingjia0524
  • cuimingjia0524
  • 2017年11月10日 20:19
  • 66

正则表达式基础语法例子

正则表达式
  • hotdust
  • hotdust
  • 2017年09月20日 09:35
  • 141

正则表达式的一些基础语法

.    匹配除换行符以外的任意字符 \w    匹配字母或数字或下划线或汉字 \s    匹配任意的空白符 \d    匹配数字 \b    匹配单词的开始或结束 ^    匹配字符串的开...
  • u013700340
  • u013700340
  • 2014年03月30日 18:02
  • 376

正则表达式(一)——基础语法

1.普通字符 字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是‘’普通字符”,表达式中的普通字符,在匹配一 个字符串的时候,匹配与之相同的一个字符。 2.简单的转义字符 3.标准字符...
  • u011535508
  • u011535508
  • 2016年11月14日 22:27
  • 240

正则表达式的基础语法

1、正则表达式是为了一个匹配字符串的,判断字符串的条件 2、是一种文本描述,是普通字符加上元字符 一、 ^:是匹配字符串的开头 $:是匹配字符串的结尾 二、贪婪字符 *:表示普通字符后面有...
  • lufazhi
  • lufazhi
  • 2017年03月06日 10:02
  • 47

JavaScript基础语法---正则表达式

代码: 变量和数据类型练习 /* var str="Haige-Love-Football and Basketball "; var reg=new RegExp('...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2016年09月27日 18:44
  • 168

正则表达式--基础语法总结

//正则表达式基础知识 //星号(*) : 星号代表匹配它前面一个字符任意遍(0或任意次) //加号(+): 加号是一个与星号(*)类...
  • qq_36263601
  • qq_36263601
  • 2017年07月07日 18:42
  • 118

dom基础

DOM查找方法语法:doucment。getElemengtById(“id”)功能返回对拥有指定Id的第一个对象的引用返回值:DOM对象说明:id喂DOM元素上ID属性的值语法:doucment.g...
  • wllwpeng
  • wllwpeng
  • 2018年01月18日 19:55
  • 12
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正则表达式基础语法
举报原因:
原因补充:

(最多只允许输入30个字)