正则表达式语法

^

字符串开始

$

字符串结束

.

任何单个字符

(a|b)

a 或 b

(...)

分组

[abc]

在(a, b或c)范围内

[^abc]

不在范围内

\s

空白符

a?

a出现零次或一次

a*

a出现零次或多次

a*?

零次或多次, ungreedy

a+

a出现一次或多次(至少一次)

a+?

a出现一次或多次, 非贪婪模式

a{3}

a出现三次

a{3,}

a出现至少三次以上

a{,6}

a出现最多六次

a{3,6}

3到6个a

a{3,6}?

3到6个a, 非贪婪模式

\

转义字符

[:punct:]

任何标点符号

[:space:]

任何空格字符

[:blank:]

空格或制表符

一个优秀的正则表达式测试工具: http:/­/re­gex­pal.com/

Pattern(模式)modifiers(修饰符)

g

执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

i *

执行对大小写不敏感的匹配

m *

执行多行匹配

s *

将字符串视为单行

x *

在模式中允许注释和空格

e *

Evaluate替换

U *

非贪婪模式

* PCRE 修饰符

PHP fopen() 模式

r

r+

读和写, 前缀

w

写, 截断

w+

读写,截断

a

写,追加

a+

读写,追加

PHP 日期格式化

Y

4位数年(2008)

y

2位数年(08)

F

月份,英文全名(January)

M

输出月份的英文简写(Jan)

m

月份,二位数字,若不足二位则在前面补零(01 到 12)

n

月份,二位数字,若不足二位则不补零(1 到 12)

D

输出当前是星期几的英文简写(Mon)

l

输出完整的星期几名称英文(Monday)(小写的L)

d

几日,二位数字,若不足二位则前面补零(01 到 31)

j

几日,二位数字,若不足二位不补零(1 到 31)

   

h

输出用0填充的12小时(01 到 12)

g

输出12小时(1 到 12)

H

输出用0填充的24小时(00 到 23)

G

输出24小时(0 to 23)

i

输出用0填充分钟(00 to 59)

s

输出用0填充的秒(00 to 59)

 

w

 数字型的星期几 ¹ (0 到 6)

z

一年中的第几天(0 到 365)

W

一年中第几个星期 (1 到 53)

t

指定月份的天数(28 到 31)

 

a

am 或 pm

A

AM 或 PM

B

Swatch 互联网时间(000 to 999)

S

序数后缀(st, nd, rd, th)

 

T

机器时区(GMT)

Z

时区偏移(秒)

O

GMT偏移(小时) (+0200)

I

夏令时(1 or 0)

L

闰年(1 or 0)

 

U

从1970年1月1日起

c

ISO 8601 (PHP 5) (2016-­07-­31T­18:­30:­13+­01:00)

r

RFC 2822 (Thu, 31 Jul 2016 18:30:13 +0100)