PHP ?? ???? ?? ???
????? Atom? ?? ??? ?? ??? ?????. ??? ?? ???? ? ? ?? ??? ??? ????.
abc? ? ?? ?? ?? ??? ??? ??? ??????
???? ??? ?? ???? ?? ??? ????. ??? ???? ?? ??? ?? ????
?? ?? ??? ????? ???? ??? ?? ?? ??? ???? ???.
????? ???? ?? ?? ??? ??? ????.
模式匹配符 | 功能 |
---|---|
i | 模式中的字符將同時(shí)匹配大小寫字母. |
m | 字符串視為多行 |
s | 將字符串視為單行,換行符作為普通字符. |
x | 將模式中的空白忽略. |
A | 強(qiáng)制僅從目標(biāo)字符串的開頭開始匹配. |
D | 模式中的美元元字符僅匹配目標(biāo)字符串的結(jié)尾. |
U | 匹配最近的字符串. |
?? ?? ??? ???? ??? ????.
/ ??? ???/?? ?? ??
?? ?? ??? ?? ?? ??? ?? ?????. ? ??. ?:
/w+/s
???? ?? ??? ?? ?? ?? ?? ??? ?? ??? ??? ???? ????. . ?? ?? ??? ???? ?? ???? ?? ?? ???? ???? ?? ??? ?????.
i? ????? ???? ????
<?php //在后面加上了一個(gè)i $pattern = '/ABC/i'; $string = '8988abc12313'; $string1 = '11111ABC2222'; if(preg_match($pattern, $string, $matches)){ echo '匹配到了,結(jié)果為:'; var_dump($matches); }else{ echo '沒有匹配到'; } ?>
????? $string? $string1 ?? ????? ??????. ??? ???? i? ??? ? ??? ???? ??? ??? ? ??.
m? ?? ?? ?????.
????? ??? ? ?? ?? ???? ?? ? ?? ?????.
"? ??" ?? ??(^)? ???? ?? ???? ???? "? ?" ?? ??($)? ??? ? ???? ?????.
? ???? ???? "? ??"? "? ?"? ?? ???? ??? ?? ??? ?? ??? ?? ??? ?? ?? ?? ?????.
??: ???? ???? "n" ??? ??? ??? ^ ?? $? ?? ?? ? ???? ???? ??? ????.
??? ??? ?? ? ??? ??? ?????.
? ?? ??? ?? ??? ????? ? ? ????.
<?php $pattern = '/^a\d+/'; $string = "我的未來在自己手中我需要不斷的努力 a9是一個(gè)不錯(cuò)的字符表示 怎么辦呢,其實(shí)需要不斷奮進(jìn)"; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
? ?? ??? ??, m? ??? ?????:
<?php $pattern = '/^a\d+/m'; $string = "我的未來在自己手中我需要不斷的努力 a9是一個(gè)不錯(cuò)的字符表示 怎么辦呢,其實(shí)需要不斷奮進(jìn)"; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
??:
? ????! ??? ????????. /^ad+/ ???? ???? a9?? ?? ?? ??? ??? ???. ? ?? ?? ????? ??????.
? ? ?? ?????
? ???? ???? ??? ? ?? ??(.)? ??? ??? ?? ??? ?????. ??.
???? ?? ?? ?? s? ???? ?????.
<?php $pattern = '/新的未來.+\d+/'; $string = '新的未來 987654321'; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
? ???? ?? ?? ?? s? ?? ??? ?? ???????.
<?php $pattern = '/新的未來.+\d+/s'; $string = "新的未來 987654321"; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
?? ??? ????. ?? ??!
?? :
1. ??? ???? ?? ?? ???? ?? ????
2. ??? (point ) is ??? ?? ??? ??? ?? ??? ?????. ??? 1?? ??????
3. 2??? s ????? ???????. .(?)? ???? ?? ??? ??? ? ?? ?????.
x ?? ?? ??
1. ? ???? ???? ??? ?? ?? ??? ???????? ?? ???? ?? ??? ?????.
2. ??????? ?? ?? ??? ??? # ??? ?? ?? ?? ??? ??? ?????.
? ? ??? ?? ??? ?? ??? ?????.
<?php $pattern = '/a b c /x'; $string = '學(xué)英語要從abc開始'; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
??? ????? ??? ? ????.
$???? ??? ??, ? abc ??? ??? ????. $string?? ??? ????.
??? x? ?? ??? ?????.
? ?? ??? ?? ??? ????? ? ?????,
rree??? ???? ??!
x? ? ?? ??? ????? ?? ??????. ?, # ??? ?? ?? ?? ??? ??? ?????.
e ???? ??? ?? ?????.
e ??? ?????? ???. ?? ??? ??? ?? ?? ??? ??? ?? ??? ?? ?? ???? ??? ????.
? ?? ???? ???? ?? Preg_replace()? ???? ???.
?? preg_replace(?? $regular ??, ?? $replacement, ?? $search ???)
? ?? preg_replace: $regular ?? ??? ???? $search ??? ??? ????. ?? ?? $replacement ??? ???? ?????.
???? ??? ??, ?? ??? ??? ?????. ??? ? ?? ??? ??? ??? ?????.
<?php //重點(diǎn)觀察這一行 $pattern = '/a b c #我來寫一個(gè)注釋 /x'; $string = '學(xué)英語要從abc開始'; if (preg_match($pattern, $string, $matches)) { echo '匹配到了,結(jié)果為:'; var_dump($matches); } else { echo '沒有匹配到'; } ?>
???????. ??:
??? ???? ?? ???? ?? ????. ???? ??? ?? ???? ????. ??? ?? ??? ?? ??? ?????. ??? ??? ??: 987, abc, 321.
?? ???? e ??? ???????.
<?php //加上了括號 $pattern = '/(\d+)([a-z]+)(\d+)/'; $string = '987abc321'; if (preg_match($pattern, $string, $match)) { echo '匹配到了,結(jié)果為:'; var_dump($match); } else { echo '沒有匹配到'; } ?>
?? ??? ???????.
??:
?? ??? $2? ?? ???? ???? ? ??(d+)? ?????. ?? 15?? ?? ?? ????
??? ? 2??? ???. ???? ??? ??? ?? ?? ??? ???? ? ??????.
U Greedy ?? ??
?? ???? ????? Greedy, ? ??? ?????.
???? ??? ?????? ???????.
<?php $string = "{April 15, 2003}"; //'w'匹配字母,數(shù)字和下劃線,'d'匹配0-99數(shù)字,'+'元字符規(guī)定其前導(dǎo)字符必須在目標(biāo)對象中連續(xù)出現(xiàn)一次或多次 $pattern = "/{(\w+) (\d+), (\d+)}/i"; $replacement = "$2"; //字符串被替換為與第 n 個(gè)被捕獲的括號內(nèi)的子模式所匹配的文本 echo preg_replace($pattern, $replacement, $string); ?>
??? ?????? ??? ?? ??? ?????. "
Hello"?? "I am
"?? ?? ?????. ?? ??? ???????.
??? ??? ??? U? ???? ??? ???????.
<?php $pattern = '/<div>.*<\/div>/'; $string = "<div>你好</div><div>我是</div>"; if (preg_match($pattern, $string, $match)) { echo '匹配到了,結(jié)果為:'; var_dump($match); } else { echo '沒有匹配到'; } ?>
???? ??? ?? ?? ??????.
<?php $pattern = '/<div>.*<\/div>/U'; $string = "<div>你好</div><div>我是</div>"; if (preg_match($pattern, $string, $match)) { echo '匹配到了,結(jié)果為:'; var_dump($match); } else { echo '沒有匹配到'; } ?>
??? ???? ????? ??? ?????. ?? ??? ?? ??? ??? ?????.
A? ?? ???? ?? ????
? ?????. ? ??? ?? ??? ^(??) ??? ?????.
<div>你好</div>
??:
1. A ?? ??? ?? ? $string? ???? ??? ???? ??? ?? ??
2. A? ???? ?? ?? ?? ???? ???? $string1? ???? ??? ???? ?? ??? ??? ? ????
D ? ???? ??? ??? ????
.? ???? ???? ??? ?? ?? ??? ?? ???? ??? ?????. ? ??? ??? ?? ??? ?? ??? ?? ??? ?? ???? ?????.
<?php $pattern = '/this/A'; $string = 'hello this is a '; //$string1 = 'this is a '; if (preg_match($pattern, $string, $match)) { echo '匹配到了,結(jié)果為:'; var_dump($match); } else { echo '沒有匹配到'; } ?>
??:
1. ?? ?? ??? $string? ???? $string? this ??? ?? ??? ??? ????. D ?? ??
? ???? ??? ????? ??? ?? ????. 2. ?? ?? ??? $string? ???? D? ?????. $string?? this ??? ?? ??? ?? ??? ?????.