它们之间可以组合搭配使用。
i 不区分(ignore)大小写;
例如: /abc/i 可以匹配 abc、aBC、Abc
g 全局(global)匹配
如果不带g,正则过程中字符串从左到右匹配,找到第一个符合条件的即匹配成功,返回
如果带g,则字符串从左到右,找到每个符合条件的都记录下来,知道字符串结尾位置
例如:
var str = ‘aaaaaaaa’
var reg1 = /a/; str.match(reg1) // 结果为:[“a”, index: 0, input: “aaaaaaaa”]
var reg2 = /a/g; str.match(reg2) // 结果为:[“a”, “a”, “a”, “a”, “a”, “a”, “a”, “a”]
m 多(more)行匹配
若存在换行\n并且有开始^或结束KaTeX parse error: Undefined control sequence: \nabcoab at position 102: … str = "abcggab\̲n̲a̲b̲c̲o̲a̲b̲"; var preg1 = …/gm; str.match(preg2) // 结果为:[“ab”, “ab”]
s 特殊字符圆点 . 中包含换行符
默认的圆点 . 是 匹配除换行符 \n 之外的任何单字符,加上s之后, . 中包含换行符
$str = “abggab\nacbs”;
p
r
e
g
=
"
/
b
.
/
s
"
;
p
r
e
g
m
a
t
c
h
a
l
l
(
preg = "/b./s"; preg_match_all(
preg="/b./s";pregmatchall(preg,
s
t
r
,
str,
str,matchs);
print_r($matchs);//Array ( [0] => Array ( [0] => bg [1] => b [2] => bs ) )
U 只匹配最近的一个字符串;不重复匹配;
$mode="/a(.*?)c/";
$preg="/a.*c/U";//这两个正则返回相同的值
s
t
r
=
"
a
b
c
a
b
b
b
c
a
b
b
b
b
b
c
"
;
p
r
e
g
m
a
t
c
h
(
str="abcabbbcabbbbbc" ; preg_match(
str="abcabbbcabbbbbc";pregmatch(mode,
s
t
r
,
str,
str,content); echo
c
o
n
t
e
n
t
[
0
]
;
/
/
a
b
c
p
r
e
g
m
a
t
c
h
(
content[0];//abc preg_match(
content[0];//abcpregmatch(preg,
s
t
r
,
str,
str,content); echo
c
o
n
t
e
n
t
[
0
]
;
/
/
a
b
c
/
/
修
正
符
:
x
将
模
式
中
的
空
白
忽
略
;
/
/
修
正
符
:
A
强
制
从
目
标
字
符
串
开
头
匹
配
;
/
/
修
正
符
:
D
如
果
使
用
content[0];//abc //修正符:x 将模式中的空白忽略; //修正符:A 强制从目标字符串开头匹配; //修正符:D 如果使用
content[0];//abc//修正符:x将模式中的空白忽略;//修正符:A强制从目标字符串开头匹配;//修正符:D如果使用限制结尾字符,则不允许结尾有换行;
//修正符:e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;