<?php
//標記在整個模式之外;
例://$mode="/\bis\b/u",其中u在外面;
//修正符:
i 不區分大小寫的匹配;
//如:"/abc/i"可以與abc或abc或abc等匹配;
//修正符:
m 將字串視為多行,不管是那行都能匹配;
例://模式為:$mode="/abc/m";
//要匹配的字串為:$str="bcefg5e\nabcdfe"
//注意其中\n,換行了;abc換到了下一行;
//$str和$mode仍可以匹配,修正符m使得多行也可匹配;
//修正符:
s 將字串視為單行,換行符作為普通字元;
例://模式為:$mode="/pr.y/";
//要匹配字串為:$str="pr\ny";
//兩者不可匹配; . 是除了換行以外的字元可匹配;
//修改下模式為:$mode="/pr.y/s";
//其中修正符s將\n視為普通字元,即不是換行;
//最後兩者可以匹配;
//修正符:
x 將模式中的空白忽略;
//修正符:
a 強制從目標字串開頭匹配;
例://$mode="/abc/a";
//可以與$str="abcsdfi"匹配,
//不可以與$str2="sdsdabc"匹配;
//因為$str2不是以abc開頭;
//修正符:
d 如果使用$限制結尾字元,則不允許結尾有換行;
例://模式為:$mode="/abc$/";
//可以與最後有換行的$str="adshabc\n"匹配;
//元子符$會忽略最後的換行\n;
//如果模式為:$mode="/abc/d",
//則不能與$str="adshabc\n"匹配,
//修正符d限制其不可有換行;必需以abc結尾;
//修正符:
u 只匹配最近的乙個字串;不重複匹配;
例: 如模式為:
$mode="/a.*c/";
$str="abcabbbcabbbbbc"
;preg_match($
mode,$
str,$
content);
echo
$content
[0]; //輸出:abcabbbcabbbbbc;
//如果$mode="/a.*c/";變成$mode="/a.*c/u
"; // 則只匹配最近乙個字串,輸出:abc;
//修正符:e
配合函式preg_replace()使用,
可以把匹配來的字串當作正規表示式執行;
?>
修正符:
posix相容正則沒有修正符。
perl相容正則中可能使用的修正符(修正符中的空格和換行被忽略,其它字元會導致錯誤):
i(pcre_caseless):
匹配時忽略大小寫。
m(pcre_multiline):
當 設定了此修正符,行起始(^)和行結束($)除了匹配整個字串開頭和結束外,還分別匹配其中的換行符(\n)的之後和之前。
s(pcre_dotall):
如 果設定了此修正符,模式中的圓點元字元(.)匹配所有的字元,包括換行符。沒有此設定的話,則不包括換行符。
x(pcre_extended):
如 果設定了此修正符,模式中的空白字元除了被轉義的或在字元類中的以外完全被忽略。
a(pcre_anchored):
如 果設定了此修正符,模式被強制為「anchored」,即強制僅從目標字串的開頭開始匹配。
d(pcre_dollar_endonly):
如 果設定了此修正符,模式中的行結束($)僅匹配目標字串的結尾。沒有此選項時,如果最後乙個字元是換行符的話,也會被匹配在裡面。如果設定了 m 修正符則忽略此選項。
s:
當乙個模式將被使用若干次時,為加速匹配起見值得先對其進行分析。 如果設定了此修正符則會進行額外的分析。目前,分析乙個模式僅對沒有單一固定起始字元的 non-anchored 模式有用。
u(pcre_ungreedy):
使 「?」的預設匹配成為貪婪狀態的。
x(pcre_extra):
模式中的任何反斜線後面跟上 乙個沒有特殊意義的字母導致乙個錯誤,從而保留此組合以備將來擴充。預設情況下,乙個反斜線後面跟乙個沒有特殊意義的字母被當成該字母本身。
u(pcre_utf8):
模 式字串被當成utf-8。
注意:模式修正符(pattern modifiers)
i -可同時匹配大小寫字母
m -將字串視為多行
s -將字串視為單行,換行符做普通字元看待,使「.」匹配任何字元
x -模式中的空白忽略不計
u -匹配到最近的字串
e -將替換的字串作為表達使用
PHP正規表示式模式修正符
i pcre caseless 如果設定此修正符,模式中的字元將同時匹配大小寫字母。m pcre multiline 默 認情況下,pcre 將目標字串作為單一的一 行 字元所組成的 甚至其中包含有換行符也是如此 行起始 元字元 僅僅匹配字串的起始,行 結束 元字元 僅僅匹配字串的結束,或者最後乙個...
PHP正規表示式模式修正符
說明 下面列出了當前在 pcre 中可能使用的修正符。括號中是這些修正符的內部 pcre 名。i pcre caseless 如果設定此修正符,模式中的字元將同時匹配大小寫字母。m pcre multiline 默 認情況下,pcre 將目標字串作為單一的一 行 字元所組成的 甚至其中包含有換行符也...
正則匹配 模式修正符 小寫u的有關問題 php
正則匹配 模式修正符 小寫u的問題 php 最近看到一段 str 你好,世界dd preg match all us str,match echocount match 0 上網查了不少資料,但對於php正規表示式中的模式修正符u實在有些不明白,求解啊 分享到 更多 解決方案 u unicode的縮...