php 正则 常用基础

正则表达式

用来描述一串字符串的字符串

定界符

除了字母数字反斜线之外的所有字符都可以

/ / (强制使用)

| |

!!

原子

在自然界中的最小单位 叫做原子

正则中的原子:可以打印的字母,数字,符号,不可打印的字符

                                     Windows中有      unix中只有

横向跳到下一制表位

有特殊作用的符号作为原子使用需要加转义符  + * . ? [] () {}   /

直接使用一些代表范围的原子 (重要)

d 数字

D 非数字

w 任意一个字符 字母(大写 小写) 数字 下划线

W 非字符

s 空白 空格 换行 TAB ....

S 非空白

自定义原子列表

[09] 09 注意:中间没有逗号

09 是两个原子 [09] 是一个原子

[0-9] 表示 范围----所有数字 [a-zA-Z]

[3|t]    表示   匹配3或t

d [0-9]

D [^0-9]

w [a-zA-Z0-9_]

s [ fv]

[^0-9] 表示 非数字

注意:^在括号中,并且紧挨左边的中括号,才表示取反。

.()

默认情况下,代表除换行符之外的任意字符 [^ ]

原字符

修饰原子的,不能单独使用

{n,m} nm个 最少有n个 最多有m

注意:mn中间有逗号!

{n,} 至少有n

{0,m} 至多有m

* 表示前面的原子可以出现 01次 或 多次

+ 表示前面的原子可以出现 1次 或 多次

? 表示前面的原子可以出现 0次 或 1

* {0,}

+ {1,}

? {0,1}

| 表示或 优先级很低

 表示边界

B 表非边界

//“有没有” 的重点

^ 写在第一个原子的前面 代表以第一个原子开始

$ 写在后一个定界符的左边 表示以XX结束

圆括号的使用

1.改变优先级

2.作为一个大原子使用

3.作为子模式使用 //“是不是” 的重点

?:.*括号中的?: 取消子模式

反向引用

/(d{4})([#-])d{2}\2d{2} d{2}:d{2}:d{2}/

贪婪匹配

禁止贪婪匹配:.*?.+?

优先级

转义符优先级最高

() (?:) []

* + ? {}

^ $

| 或的优先级 最低(用或的选项应该用()括起来不能用[]

模式修正符

i 不区分大小写

s 将字符串视为单行 .可以匹配所有字符

U 禁止贪婪匹配 U和?会抵消 (不要同时使用)

个人认为:

^$的是匹配一个字符串从头到尾的匹配,如:注册验证。叫“是不是”。验证是不是我们要的格式。

而没有^$时,为“有没有”,顾名思义,就是字符串里有没有要搜的正则

 

  windos系统中用于匹配字符窜中是否由回车换行出现

 Linux系统中用于匹配字符窜中是否由回车换行出现

Preg_replace()  的应用,返回的是字符串,不是数组  (注意:$3,${1}1)

<?php
$string = 'April 15, 2003';
$pattern = '/(w+) (d+), (d+)/i';
$replacement = '${3}-$1-${2}';
echo preg_replace($pattern, $replacement, $string);
?> 

结果:

2003-April-15

 

 

Preg_match()

Preg_match_all()

 

Ip ^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$

 

 

原文地址:https://www.cnblogs.com/hfdp/p/5872272.html