一個空行,可能包括,換行符, ,空格。對字符串進行處理時,難免會遇到對空行進行處理。
1,替換空行,空行可包括空格, ,/t,/f,/n
$s = preg_replace('/(^(/s| )*$)/m', '',$s);
2,替換空行,只包括換行符
$s = preg_replace('/(($/n/r*$)|(^/n/r*^))+/m', '',$s)
3,替換空行,并將非空行的開頭和結尾的空格去掉
$s = preg_replace('/^( |/s)*|( |/s)*$/m', '',$s);
4,不匹配空行,直接不匹配空行,挺難的。其實不匹配空行,就是匹配非空行
preg_match_all('//S+/m',$s,$match);
5,多行匹配實例
- $s = "
- test:
- 11111
- 22222
- 33333333333333333333
- 44444444444444444444
- ";
- $s = preg_replace('/(^(/s| )*$)/m', '<br>',$s);
- $pa = "/test:(((/s)*[^<]*)*)/i";
- preg_match($pa,$s,$m);
- echo $m[1];
匹配test行到下面多空行之間的內空,也是11111,22222
6,常用匹配模式
i 模式中的字符將同時匹配大小寫字母
m 字符串視為多行
s 將字符串視為單行,換行符作為普通字符
x 將模式中的空白忽略
e preg_replace() 函數在替換字符串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,并用其結果來替換所搜索的字符串。
A 強制僅從目標字符串的開頭開始匹配
D 模式中的 $ 元字符僅匹配目標字符串的結尾
U 匹配最近的字符串
u 模式字符串被當成 UTF-8
新聞熱點
疑難解答