正則表達式在 PHP 中的應用
在 PHP 應用中
•正則匹配
•正則替換
•正則分割
在 PHP 中有兩類正則表達式函數
定界符
Perl 兼容模式的正則表達式函數
提示
盡管正則表達式功能非常強大
preg_match()
preg_match() 函數用於進行正則表達式匹配
語法
int preg_match( string pattern
參數說明
例子
<?php
if(preg_match("/php/i"
print "A match was found:"
} else {
print "A match was not found
}
?>
浏覽器輸出
A match was found: PHP
在該例子中
提示
preg_match() 第一次匹配成功後就會停止匹配
例子
<?php
// 從 URL 中取得主機名
preg_match("/^(http://)?([^/]+)/i"
$host = $matches[
// 從主機名中取得後面兩段
preg_match("/[^
echo "域名為
?>
浏覽器輸出
域名為
preg_match_all()
preg_match_all() 函數用於進行正則表達式全局匹配
語法
int preg_match_all( string pattern
參數說明
可選
- PREG_PATTERN_ORDER
默認 對結果排序使 $matches[ ] 為全部模式匹配的數組 $matches[ ] 為第一個括號中的子模式所匹配的字符串組成的數組 以此類推 - PREG_SET_ORDER
對結果排序使 $matches[ ] 為第一組匹配項的數組 $matches[ ] 為第二組匹配項的數組 以此類推 - PREG_OFFSET_CAPTURE
如果設定本標記 對每個出現的匹配結果也同時返回其附屬的字符串偏移量
下面的例子演示了將文本中所有 <pre></pre> 標簽內的關鍵字(php)顯示為紅色
<?php
$str = "<pre>學習php是一件快樂的事
$kw = "php";
preg_match_all(
for($i=
$mat[
$mat[
$str = str_replace($mat[
}
echo $str;
?>
正則匹配中文漢字
正則匹配中文漢字根據頁面編碼不同而略有區別
•GBK/GB
•UTF
例子
<?php
$str = "學習php是一件快樂的事
preg_match_all("/[x
//UTF
//preg_match_all("/[x{
print_r($match);
?>
輸出
Array
(
[
(
[
[
)
)
From:http://tw.wingwit.com/Article/program/PHP/201311/21230.html