A. php 正則表達式
代碼如下:
<?php
$str=file_get_contents('http://abc.com/aaa.php');
if (preg_match('|<input name="a" type="hidden" value="([^"]*)"/>|', $str, $reg)) $out=$reg[1];
else $out='';
echo "$out<br>\n";
?>
B. php正則表達式eregi()
PHP中的正則式使用
PHP被大量的應用於Web的後台CGI開發,通常是在用戶數據數據之後得出某種結果,但是如果用戶輸入的數據不正確,就會出現問題,比如說某人的生日是」2月30日」!那應該怎麼樣來檢驗暑假是否正確呢? 在PHP中加入了正則表達式的支持,讓我們可以十分方便的進行數據匹配。
2 什麼是正則表達式:
簡單的說,正則表達式是一種可以用於模式匹配和替換的強大工具。在幾乎所有的基於UNIX/LINUX系統的軟體工具中找到正則表達式的痕跡,例如:Perl或PHP腳本語言。此外,JavaScript這種客戶端的腳本語言也提供了對正則表達式的支持,現在正則表達式已經成為了一個通用的概念和工具,被各類技術人員所廣泛使用。
在某個Linux網站上面有這樣的話:」如果你問一下Linux愛好者最喜歡什麼,他可能會回答正則表達式;如果你問他最害怕什麼,除了繁瑣的安裝配置外他肯定會說正則表達式。」
正如上面說的,正則表達式看起來非常復雜,讓人害怕,大多數的PHP初學者都會跳過這里,繼續下面的學習,但是PHP中的正則表達式有著可以利用模式匹配找到符合條件的字元串、判斷字元串是否合乎條件或者用指定的字元串來替代符合條件的字元串等強大的功能,不學實在太可惜了……
3 正則表達式的基本語法:
一個正則表達式,分為三個部分:分隔符,表達式和修飾符。
分隔符可以是除了特殊字元以外的任何字元(比如」/ !」等等),常用的分隔符是」/」。表達式由一些特殊字元(特殊字元詳見下面)和非特殊的字元串組成,比如」[a-z0-9_-]+@[a-z0-9_-.]+」可以匹配一個簡單的電子郵件字元串。修飾符是用來開啟或者關閉某種功能/模式。下面就是一個完整的正則表達式的例子:
/hello.+?hello/is
上面的正則表達式」/」就是分隔符,兩個」/」之間的就是表達式,第二個」/」後面的字元串」is」就是修飾符。
在表達式中如果含有分隔符,那麼就需要使用轉義符號」",比如」/hello.+?/hello/is」。轉義符號除了用於分隔符外還可以執行特殊字元,全部由字母構成的特殊字元都需要」"來轉義,比如」d」代表全體數字。
4 正則表達式的特殊字元:
正則表達式中的特殊字元分為元字元、定位字元等等。
元字元是正則表達式中一類有特殊意義的字元,用來描述其前導字元(即元字元前面的字元)在被匹配的對象中出現的方式。元字元本身是一個個單一的字元,但是不同或者相同的元字元組合起來可以構成大的元字元。
元字元:
大括弧:大括弧用來精確指定匹配元字元出現的次數,例如」/pre{1,5}/」表示匹配的對象可以是」pre」、」pree」、」preeeee」這樣在」pr」後面出現1個到5個」e」的字元串。或者」/pre{,5}/」代表pre出現0此到5次之間。
加號:」+」字元用來匹配元字元前的字元出現一次或者多次。例如」/ac+/」表示被匹配的對象可以是」act」、」account」、」acccc」等在」a」後面出現一個或者多個」c」的字元串。」+」相當於」{1,}」。
星號:」*」字元用來匹配元字元前的字元出現零次或者多次。例如」/ac*/」表示被匹配的對象可以是」app」、」acp」、」accp」等在」a」後面出現零個或者多個」c」的字元串。」*」相當於」{0,}」。
問號:」?」字元用來匹配元字元前的字元出現零次或者1次。例如」/ac?/」表示匹配的對象可以是」a」、」acp」、」acwp」這樣在」a」後面出現零個或者1個」c」的字元串。」?」在正則表達式中還有一個非常重要的作用,即」貪婪模式」。
還有兩個很重要的特殊字元就是」[ ]「。他們可以匹配」[]「之中出現過的字元,比如」/[az]/」可以匹配單個字元」a」或者」z」;如果把上面的表達式改成這樣」/[a-z]/」,就可以匹配任何單個小寫字母,比如」a」、」b」等等。
如果在」[]「中出現了」^」,代表本表達式不匹配」[]「內出現的字元,比如」/[^a-z]/」不匹配任何小寫字母!並且正則表達式給出了幾種」[]「的默認值:
[:alpha:]:匹配任何字母
[:alnum:]:匹配任何字母和數字
[:digit:]:匹配任何數字
[:space:]:匹配空格符
[:upper:]:匹配任何大寫字母
[:lower:]:匹配任何小寫字母
[:punct:]:匹配任何標點符號
[:xdigit:]:匹配任何16進制數字
另外下面這些特殊字元在轉義符號」"轉義後代表的含義如下:
s:匹配單個的空格符
S:用於匹配除單個空格符之外的所有字元。
d:用於匹配從0到9的數字,相當於」/[0-9]/」。
w:用於匹配字母,數字或下劃線字元,相當於」/[a-zA-Z0-9_]/」。
W:用於匹配所有與w不匹配的字元,相當於」/[^a-zA-Z0-9_]/」。
D:用於匹配任何非10進制的數字字元。
.:用於匹配除換行符之外的所有字元,如果經過修飾符」s」的修飾,」.」可以代表任意字元。
利用上面的特殊字元可以很方便的表達一些比較繁瑣的模式匹配。例如」/d0000/」利用上面的正則表達式可以匹配萬以上,十萬一下的整數字元串。
定位字元:
定位字元是正則表達式中又一類非常重要的字元,它的主要作用是用於對字元在匹配對象中的位置進行描述。
^:表示匹配的模式出現在匹配對象的開頭(和在」[]「裡面不同)
$:表示匹配的模式出現在匹配對象的末尾
空格:表示匹配的模式出現在開始和結尾的兩個邊界之一
「/^he/」:可以匹配以」he」字元開頭的字元串,比如hello、height等等;
「/he$/」:可以匹配以」he」字元結尾的字元串即she等;
「/ he/」:空格開頭,和^的作用一樣,匹配以he開頭的字元串;
「/he /」:空格結束,和$的作用一樣,匹配以he結尾的字元串;
「/^he$/」:表示只和字元串」he」匹配。
括弧:
正則表達式除了可以用戶匹配,還可以用括弧」()」來記錄需要的信息,儲存起來,給後面的表達式讀取。比如:
/^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)(.[a-zA-Z0-9_-])$/
就是記錄郵件地址的用戶名,和郵件地址的伺服器地址(形式為[email protected]之類的),在後面如果想要讀取記錄下來的字元串,只是需要用」轉義符+記錄的次序」來讀取。比如」1〃就相當於第一個」[a-zA-Z0-9_-]+」,」2〃相當於第二個([a-zA-Z0-9_-]+),」3〃就是第三個(.[a-zA-Z0-9_-])。但是在PHP中,」"是一個特殊的字元,需要轉義,所以」"到了PHP的表達式中就應該寫成」1〃。
其他特殊符號:
「|」:或符號」|」和PHP裡面的或一樣,不過是一個」|」,而不是PHP的兩個」||」!意思就是可以是某個字元或者另一個字元串,比如」/abcd|dcba/」可能匹配」abcd」或者」dcba」。
5 貪婪模式:
前面在元字元中提到過」?」還有一個重要的作用,即」貪婪模式」,什麼是
C. 請問有沒有正則表達式測試器Regester求
正則表達式測試器綠色版是一款對於使用這款軟體非常有幫助的工具,允許你測試和分析這款軟體,這款軟體里的功能真的是非常的強大,它能夠有效的幫助用戶們解決生活上的煩惱問題,就比如我們通常在電腦上運行的各類軟體應用,這些問題都是相對於比較復雜的,如果要解決這一類的問題,那麼你就需要把這些表格、文本等多種樣式的文件進行處理,然而處理的方式有很多種,正確的去處理這些事情會給自己帶來便利的快捷方式。正則表達式測試器Regester
D. PHP函數preg_match_all正則表達式的基本使用詳細解析
了解正則表達式之前,須要掌握一些常用的正則表達式的基礎知識,這些如果能記得最好記得,記不住須要用的時候能查到就行,就多個特殊字元,所以說正則表達式玩的就是特殊,具體大家可以查看更加細致的說明。
preg_match_all函數具體說明大家可以查看PHP手冊,本文運用
preg_match_all用於測試正則表達的效果。
實例代碼:
復制代碼
代碼如下:
$html
=
'<div
id="biuuu">jb51.net</div><div
id="biuuu_2">jb51.net2</div><div
id="biuuu_3">jb51.net3</div>';
實例要求:分別將每一個DIV元素的ID和內容取出,如biuuu,biuuu_2,biuuu_3,jb51.net,jb51.net2和jb51.net3(一些常用的抓站要領就是這樣匹配的)
分析:字元串是一個基本的HTML元素,每一個DIV元素對應該一個ID和內容,並且是獨立的,首先考慮如何
取出一個DIV內的ID值和內容,如:jb51.net,然後匹配其它類似的元素。一個DIV中須要取出兩個值,也就是兩個匹配的表達式,第一個表達式用於匹配ID值(biuuu),第二個表達式用於匹配ID的內容(jb51.net),正則表達式常用的表達式運用小括弧,那麼前面的元素將會變成如下形式:
<div
id="(biuuu)">(jb51.net)</div>
<div
id="(表達式1)">(表達式2)</div>
好,運用如上小括弧把須要匹配的區域執行
了劃分,接下來就是如何
匹配各個表達式內的內容,我們猜想一個ID可能是字母,數字或下劃線,那這就變得基本了,運用中括弧就可以實現,如下:
表達式1:[a-zA-Z0-9_]+
(表示匹配大小寫字母,數字和下劃線)
那如何
匹配表達式2,因為ID的內容可以是任意的字元,但是要留心,不能匹配<或>字元,因為如果匹配這兩個字元將會把後面運用的DIV都匹配出來,因此須要排除這兩個字元開始的元素,也就是不匹配以<或>字元,如下:
表達式2:[^<>]+
(表示不匹配<和>字元)
這樣,須要匹配的子表達式就實現了,但是還要須要匹配一個
的表達式,要領如下:
表達式:/
'\"(表達式1)\"'>(表達式2)<\/div>/
留心其中的雙引號"和/須要運用
\轉義字元轉義,然後把前面兩個表達式放進去,
如下:
'\"([a-z0-9_]+)\"'>/<div
id=\"([a-z0-9_]+)\">([^<>]+)<\/div>/
這樣就實現一個匹配每一個DIV元素ID值和內容的正則表達式,然後運用
preg_match_all函數測試如下:
復制代碼
代碼如下:
$html
=
'<div
id="biuuu">jb51.net</div><div
id="biuuu_2">jb51.net2</div><div
id="biuuu_3">jb51.net3</div>';
preg_match_all('/<div\sid=\"([a-z0-9_]+)\">([^<>]+)<\/div>/',$html,$result);
var_mp($result);
結果:
復制代碼
代碼如下:
array(3)
{
[0]=>
array(3)
{
[0]=>
string(30)
"<div
id="biuuu">jb51.net</div>"
[1]=>
string(33)
"<div
id="biuuu_2">jb51.net2</div>"
[2]=>
string(33)
"<div
id="biuuu_3">jb51.net3</div>"
}
[1]=>
array(3)
{
[0]=>
string(5)
"biuuu"
[1]=>
string(7)
"biuuu_2"
[2]=>
string(7)
"biuuu_3"
}
[2]=>
array(3)
{
[0]=>
string(8)
"jb51.net"
[1]=>
string(9)
"jb51.net2"
[2]=>
string(9)
"jb51.net3"
}
}
共有三個表達式,分別顯示每一個表達式匹配的值,並以數組的形式存儲,這樣就把每一個DIV元素的ID和內容取出。運用正則表達式最主要還是要知道須要什麼,然後跟椐須要執行
匹配,並且思路清晰,並適當的藉助preg_match_all函數執行
輸出調試,非常方便。
E. 正則表達式測試工具怎麼用
這是笑侃用c#開發的用於測試正則表達式的小工具. 支持Access 資料庫, 無需安裝, 解壓之後就可以直接使用, 但是需要.net framework的支持(可以到微軟的網站去下載)運行後點擊界面上的文件夾圖標即可查看原始資料庫中的示例, 希望能夠給大家在開發正則表達式的時候帶來方便.
軟體特性這是笑侃用c#開發的用於測試正則表達式的小工具. 支持Access 資料庫, 無需安裝, 解壓之後就可以直接使用, 但是需要.net framework的支持(可以到微軟的網站去下載)運行後點擊界面上的文件夾圖標即可查看原始資料庫中的示例, 希望能夠給大家在開發正則表達式的時候帶來方便.
F. 如何運用PHP函數preg_match_all測試正則表達式效果
php自學網2< /div< div id="biuuu_3"php自學網3< /div'; PHP函數preg_match_all實例要求:分別將每一個DIV元素的ID和內容取出,如biuuu,biuuu_2,biuuu_3,php自學網,php自學網2和php自學網3(一些常用的抓站方法就是這樣匹配的) 分析:字元串是一個簡單的HTML元素,每一個DIV元素對應該一個ID和內容,並且是獨立的,首先考慮如何取出一個DIV內的ID值和內容, 如:php自學網,然後匹配其它類似的元素。一個DIV中需要取出兩個值,也就是兩個匹配的表達式,第一個表達式用於匹配ID值(biuuu),第二個表 達式用於匹配ID的內容(php自學網),正則表達式常用的表達式使用小括弧,那麼前面的元素將會變成如下形式: < div id="(biuuu)"(php自學網)< /div< div id="(表達式1)"(表達式2)< /div 表達式1:[a-zA-Z0-9_]+ (表示匹配大小寫字母,數字和下劃線) 表達式2:[^<]+ (表示不匹配<和字元) 這樣,PHP函數preg_match_all需要匹配的子表達式就實現了,但是還要需要匹配一個的表達式,方法如下: 表達式:/ '"(表達式1)"'(表達式2)/ 注意其中的雙引號"和/需要使用轉義字元轉義,然後把前面兩個表達式放進去,如下:
G. php中正則表達式的性能怎麼測試
以上是 [精通正則表達式(第三版)].(美)佛瑞德.掃描版 上面的內容,供參考。
H. 求個正則表達式,驗證1個數字,整數10位以內,小數5位以內
暫時研究到這個:
^([-+]?\d{1,10})(\.\d{1,5})?$
請LZ看看是否適合。
說明一下:
[-+]? 匹配正負號
\d{1,10} 匹配1到10位數字
(\.\d{1,5})? 匹配小數,如果有小數點,則必須接1到5位的數字,只有小數點則不匹配
^和$當然就是匹配開始結束了
另外,LZ可以下個RegexTester(正則表達式測試器),很不錯的工具
順表也貼上測試代碼吧(PHP)
function check($num) { //檢查函數
$reg = '/^([-+]?\d{1,10})(\.\d{1,5})?$/'; //正則表達式
if(preg_match($reg, $num)) {
echo 'the num: ' . $num . ' ---- yes!
';
} else {
echo 'the num: ' . $num . ' ---- no!
';
}
}
$numbers = array( //一些測試數據
1 => -0.14,
2 => +0.14,
3 => 1234567891,
4 => 12345678912,
5 => 123456.123,
6 => 123456,123456,
7 => 1234.,
8 => 0000.12345,
9 => 0.123456
);
array_walk($numbers, 'check'); //對個數組中的每個值執行check函數
I. php正則表達式提取測試名稱、時間、訂單號、商戶號、支付結果,怎麼表示
不用正則表達式,這是個json數組,json_decode就可以了
J. 掌握PHP 中的正則表達式,第 2 部分: 如何在 PHP 中處理文本
雖然術語數據 和信息 可以互換使用,但是兩者之間有很大的差別。數據是有據可依的。溫度列表、近期銷售狀況說明或者庫存零部件清單,這些都是數據。信息含有一定見解。天氣預報、損益表和銷售趨勢屬於信息。數據是由若干個 1 和 0 表示,而信息則經由人腦分析得出。數據和信息之間是軟體應用程序:引擎將把數據和信息來回轉換。例如,如果在線購買圖書,購書應用程序將把信息 —— 書名、身份信息、銀行帳號信息 —— 轉換為數據,例如訂單號、售價、信用卡交易詳細信息和對存貨清單的調整。類似地,購書應用程序將把數據再轉換為倉庫提貨請求、運輸標簽和跟蹤編號等完成銷售所需的信息。當然,創建應用程序的復雜度與其影響的轉換直接成正比。Web 站點留言本十分簡單,它把姓名和地址轉換為資料庫中的欄位。同時,在線商店十分復雜,它將把各類信息轉換為業務數據模型並把數據轉換為信息來推動決策。編程的藝術在於對數據和信息的熟練處理 —— 類似於在明暗處理中捕捉亮色的技能。如第1 部分 中所述,regex 是處理數據的最強大工具之一。使用簡明的簡寫方式,regex 說明了數據的格式並分解數據。例如,您可以使用下面的 regex 處理所有攝氏或華氏溫度:/^([+-]?[0-9]+)([CF])$/。regex 將匹配行的開頭(由脫字元號 ^ 表示),後接一個正號,一個負號,或者兩者都不是 ([+-]?),後接一個整數 ([0-9]+),數值范圍限定符 —— 攝氏或華氏 ([CF])—— 並在行尾(用美元符號 $ 表示)終止。在溫度 regex 中,行開頭和行結尾操作符是兩個零寬度斷言 示例,或者匹配位置而非文字。括弧也不是文字。相反,嵌入到括弧內的模式將捕捉匹配模式的文本。因此,如果文本匹配了整個模式,第一組括弧將生成表示一個正整數或負整數的的字元串,例如 +49。第二組括弧將生成字母 C 或F。 第1 部分介紹了 regex 的概念和可用於比較文本與模式和提取匹配的 PHP 函數。現在我將更深入地研究 regex 並查看一些高級操作符和處理方法。(再次)使用括弧在大多數情況下,使用一組括弧可以定義子模式和捕捉匹配子模式的文本。但是,括弧不需要捕捉子模式。正如在復雜的數學公式中,您可以簡單地使用括弧來給術語分組。下面是一個示例。您能否說出它匹配哪類數據? /[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|e|info)/i 您可能已經預料到此 regex 將匹配主機名(雖然只在 .com、.e 和 .info 這幾個域中)。差別是添加了 ?:。子模式限定符 ?: 將禁用捕捉,留下括弧來闡明操作的優先次序。例如,在這里,短句 (?:\.[-a-z0-9]+)* 將匹配零個或多個字元串實例(例如 「.ibm」)。類似地,短句 \.(?:com|e|info) 表示句點,後接字元串 com、e 或info 中的任意一個。禁用捕捉可能看似毫無意義,直至您意識到捕捉需要額外的處理。如果代碼將處理大量數據,則忽略捕捉可能是有意義的。此外,如果 regex 特別復雜,禁用某些子模式中的捕捉可以更輕松地提取真正感興趣的子模式。註:使用regex 末尾的 i 修飾語可以使模式內的所有匹配都不區分大小寫。因此,子集 a-z 將匹配所有字母,而不區分大小寫。PHP 將提供其他子模式修飾詞。使用第 1 部分中提供的 regex 測試 jig(如 清單1 所示),將針對候選字元串 「EDU」、「e」 和「E」 匹配 regex ((?i)e)。如果子模式以修飾詞 (?i) 為開頭,則在子模式中進行匹配不區分大小寫。只要子模式結束,區分大小寫將被重新啟用(將此修飾詞與上面的 /.../i 修飾詞相比較,後者應用於整個模式)。清單1. 簡單的 regex 測試實用程序 另一個有用的子模式修飾詞是 (?x)。它允許您在子模式中嵌入空白,使 regex 更易讀。因而,子模式 ((?x) e | com | info)(請注意備用操作符之間的空格,這些空格是為了易讀性而添加的)與 (e|com|info) 相同。您可以使用全局修飾詞 /.../x 在整個 regex 中嵌入空白和注釋,如下所示:清單2. 嵌入空白和注釋 $matches = preg_grep( "/ [- a-z 0-9]+ # machine name (?: \. [- a-z 0-9]+)* # subdomains \. (?: com | e | info)# domain /xi", $words ); 正如您所見,還可以根據需要組合修飾詞。另外,如果需要在使用 (?x) 時匹配空格,那麼,使用元字元 \s 來匹配所有空格字元或使用 \ (反斜杠後接空格)來匹配單個空格,如 ((?x) hello \ there)。回頁首其他應用regex 的大量應用都是驗證或分解存儲為存儲庫中的數據或由應用程序立即執行的各個小塊的輸入。處理表單中的欄位、解析 XML 代碼以及解釋協議都是典型應用。regex 的另一個應用是格式化、規范化或提高數據的可讀性。格式化不是使用 regex 查找和提取文本,而是使用 regex 查找並在正確位置插入文本。下面是一個有用的格式化應用程序。假定 Web 表單把按照美元計算的薪金提交給應用程序。由於把薪金存儲為整數,因此應用程序必須先去掉所粘貼數據中的標點符號,然後再保存。但是,在從存儲庫中檢索出數據時,則需要使用逗號重新設定數據的格式使其具有可讀性。下面顯示了一個用於把美元金額轉換為數字的簡單 PHP 調用。清單3. 把美元金額轉換為數字 $salary = preg_replace( "/[\$\s,]/", '', $_REQUEST[ 'salary' ] ); if ( is_numeric( $salary ) ) { // persist the data } else { // error } 調用preg_replace() 函數將用空字元串替換美元符號、所有空格和每個逗號,生成認為是整數的內容。如果調用 is_numeric() 對輸入進行了驗證,則可以存儲數據。接下來,讓我們反向操作輸出帶有貨幣符號和用於分隔百、千、百萬的逗號的數字。您可以編寫代碼來查找這些數字單元,也可以使用向前查找 和向後查找 在正確位置上插入逗號。子模式修飾詞 ? "Wicked" [1] => "Mirror, Mirror." ) regex ".*?" 變為匹配一個引號,後接剛好足夠的 字元,後接一個引號。但是,使用 * 操作符有時可能太懶惰。例如,採用以下代碼片段。它將生成什麼輸出?清單7. 簡單的 regex 測試實用程序 if (preg_match( "/([0-9]*)/", "-123", $matches ) ) { print_r( $matches ); } 猜測輸出是什麼?「123」?「1」?沒有輸出?實際上,輸出是 Array ( [0] => [1] => ),表示找到一個匹配,但是未捕捉到任何內容。為什麼?回想一下操作符 * 可以匹配零次或多次。在這里,表達式 [0-9]* 針對字元串開頭匹配零次,隨後停止處理。要解決此問題,請添加零寬度斷言來錨定匹配,這將強制 regex 引擎繼續進行匹配;/([0-9]*\b/ 就可解決問題。回頁首更多提示和技巧regex 可以解決簡單或復雜的文本處理問題。首先掌握一些操作符,隨著經驗逐漸豐富,您可以進一步擴展詞彙表。要立即開始使用,請參考下面這些提示和技巧。用字元類實現可移植的 regex您已經看到過匹配所有空格字元的元字元,例如 \s。此外,許多 regex 實現都支持更易於跨多種編寫語言使用和移植的預定義字元類。例如,字元類 [:punct:] 表示當前語言環境中的所有標點字元。您可以使用 [:digit:] 代替[0-9],並且 [:alpha:] 是比[-a-zA-Z0-9_] 更具有可移植性的替代者。例如,您可以使用以下語句移除字元串中的所有標點符號: $clean = preg_replace( "/[[:punct:]]/", '', $string ); 使用字元類比清楚說明所有標點符號更簡潔。要獲得字元類的完整列表,請參閱適用於您的 PHP 版本的文檔。排除不需要查找的內容與將逗號分隔的值 (CSV) 轉換為用製表符分隔的數據一樣,列出不 需要匹配的內容有時更容易也更精確。以脫字元號 (^) 為開頭的集合將匹配集合中不包括的所有字元。例如,您可以使用正則表達式 /[2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}/ 來驗證美國電話號碼。使用排除集合,可以把 regex 編寫為更顯式的 /[^01][0-9]{2}[^01][0-9]{2}[0-9]{4}/。兩個 regex 都可以正常運行,但是顯然後者意圖更加明顯。跳過換行符如果輸入跨度多行,則使用典型的 regex 是不夠的,因為掃描將在 $ 所指示的換行符處終止。但是,如果使用 s 或m 修飾詞,regex 引擎將按照不同的方式處理輸入。前者將把字元串處理為單行,強制用點匹配換行符(它通常不這樣做)。後者將把字元串處理為多行,其中 ^ 和$ 將分別匹配每行的開頭和結尾。下面是一個示例:如果設置 $string = "Hello,\nthere";,則語句 preg_match( "/.*/s", $string, $matches) 將把$matches[0] 設為Hello,\nthere(刪除 s 將生成 Hello)。正則表達式幾乎無所不能,也許惟一的限制因素就是您的想像力和創造力了。參考資料 學習 您可以參閱本文在 developerWorks 全球站點上的 英文原文。
閱讀「掌握PHP 中的正則表達式」 系列中的其他文章。
PHP.net 是PHP 開發者的重要資源。
查閱「PHP 推薦讀物列表」。
瀏覽developerWorks 上的全部 PHP 文章和PHP 教程。
查看IBM developerWorks 的 PHP 項目資源 擴展PHP 技巧。
收聽針對軟體開發人員的有趣訪談和討論,一定要訪問 developerWorks podcast。
要將資料庫與 PHP 結合使用?查看 Zend Core for IBM,它是一個無縫的、可以立即使用、易於安裝、支持 IBM DB2 V9 的 PHP 開發和生產環境。
隨時關注 developerWorks 的 技術事件和網路廣播。
查閱最近將在全球舉辦的面向 IBM 開放源碼開發人員的研討會、交易展覽、網路廣播和其他 活動。
訪問developerWorks 開放源碼專區,獲得豐富的 how-to 信息、工具和項目更新,幫助您用開放源碼技術進行開發,並與 IBM 產品結合使用。
查看免費的 developerWorks On demand demo 觀看並了解 IBM 及開源技術和產品功能。
獲得產品和技術使用IBM 試用軟體,改進您的下一個開發項目,這些軟體可以通過下載或從 DVD 中獲得。
下載IBM 產品評估版,並開始使用 DB2�0�3、Lotus�0�3、Rational�0�3、Tivoli�0�3 和 WebSphere�0�3 的應用程序開發工具和中間件產品。
討論參與developerWorks blog 並加入 developerWorks 社區。
關於作者Martin Streicher 是 McClatchy Interactive 的首席技術官、Linux Magazine 的主編、Web 開發人員以及 developerWorks 的定期投稿者。他畢業於普渡大學並獲得計算機科學碩士學位,從 1986 年起他一直從事類 UNIX 系統的編程工作。關閉[x]關於報告濫用的幫助報告濫用謝謝! 此內容已經標識給管理員注意。關閉[x]關於報告濫用的幫助報告濫用報告濫用提交失敗。 請稍後重試。關閉[x]developerWorks:登錄IBM ID:需要一個 IBM ID?忘記IBM ID?密碼:忘記密碼?更改您的密碼 保持登錄。單擊提交則表示您同意developerWorks 的條款和條件。 使用條款 當您初次登錄到 developerWorks 時,將會為您創建一份概要信息。您在developerWorks 概要信息中選擇公開的信息將公開顯示給其他人,但您可以隨時修改這些信息的顯示狀態。您的姓名(除非選擇隱藏)和昵稱將和您在 developerWorks 發布的內容一同顯示。所有提交的信息確保安全。關閉[x]請選擇您的昵稱:當您初次登錄到 developerWorks 時,將會為您創建一份概要信息,您需要指定一個昵稱。您的昵稱將和您在 developerWorks 發布的內容顯示在一起。昵稱長度在 3 至 31 個字元之間。 您的昵稱在 developerWorks 社區中必須是唯一的,並且出於隱私保護的原因,不能是您的電子郵件地址。昵稱:(長度在 3 至 31 個字元之間)單擊提交則表示您同意developerWorks 的條款和條件。 使用條款. 所有提交的信息確保安全。為本文評分評論回頁首