PHP正則表達式主要用於字符串的模式分割
我的PHP正則入門
PHP正則表達式的定義
用於描述字符排列和匹配模式的一種語法規則
PHP中的正則函數
PHP中有兩套正則函數
一套是由PCRE(Perl Compatible Regular Expression)庫提供的
一套由POSIX(Portable Operating System Interface of Unix )擴展提供的
由於POSIX正則即將推出歷史舞台
PCRE正則表達式
PCRE全稱為Perl Compatible Regular Expression
在PCRE中
正則中重要的幾個概念有
常用的元字符(Meta
元字符 說明
A 匹配字符串串首的原子
Z 匹配字符串串尾的原子
b 匹配單詞的邊界 /bis/ 匹配頭為is的字符串 /isb/ 匹配尾為is的字符串 /bisb/ 定界
B 匹配除單詞邊界之外的任意字符 /Bis/ 匹配單詞“This”中的“is”
d 匹配一個數字
D 匹配除數字以外任何一個字符
w 匹配一個英文字母
W 匹配除英文字母
s 匹配一個空白字符
S 匹配除空白字符以外任何一個字符
f 匹配一個換頁符等價於 x
匹配一個換行符
匹配一個回車符等價於x
t 匹配一個制表符
v 匹配一個垂直制表符
oNN 匹配一個八進制數字
xNN 匹配一個十六進制數字
cC 匹配一個控制字符
模式修正符(Pattern Modifiers)
模式修正符在忽略大小寫
i -可同時匹配大小寫字母
M -將字符串視為多行
S -將字符串視為單行
X -模式中的空白忽略不計
U -匹配到最近的字符串
e -將替換的字符串作為表達使用
格式
PCRE的模式單元
//
/^d{
當不需要存儲匹配結果時使用非存儲模式單元“(?
例如/(?:a|b|c)(D|E|F)
PCRE正則表達式函數
preg_match()和preg_match_all()
preg_quote()
preg_split()
preg_grep()
preg_replace()
函數的具體使用
匹配action屬性
$str = ’’;
$match = ’’;
preg_match_all(’/s+action="(?!http:)(
print_r($match);
在正則中使用回調函數
/**
* replace some string by callback function
*
*/
function callback_replace() {
$url = ’
$str = ’’;
$str = preg_replace ( ’/(?<=saction=")(?!http:)(
echo $str;
}
function search($url
return $url
}
帶斷言的正則匹配
$match = ’’;
$str = ’xxxxxx
paragraph text
’;
preg_match_all ( ’/(?<=<(w{
echo "匹配沒有屬性的HTML標簽中的內容
print_r ( $match );
替換HTML源碼中的地址
$form_html = preg_replace ( ’/(?<=saction="|ssrc="|shref=")(?!http:|javascript)(
最後
而對於preg和ereg兩個系列之間的執行效率
From:http://tw.wingwit.com/Article/program/PHP/201311/20854.html