正則表達式應用實例,筆者會在隨後的博文裏面陸續發佈其應用實例。
處理Email地址
在用戶發佈的內容中,我們需要捕捉其中的email,給其增加mailto的鏈接。
code:
1: $str = "My email is [email protected]";
2: //$newStr = ereg_replace("([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)",'//1',$str);
3: //$newStr = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','//1',$str);
4: //$newStr = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','$1',$str);
5: $newStr = preg_replace('/([.a-zA-Z0-9]+@[.a-zA-Z0-9]+)/','//1',$str);
6: echo $newStr,'';
這裏用到了子表達式引用,使用//1或者$1(應用於preg)來引用pattern中的第一個子表達式,依次類推。
撲捉img中的src
有時我們需要抓取img中的src內容。這裏使用到避免貪婪模式方法。
code:
1: $str = '';
2:
3: preg_match('/src="(.*?)"/', $str, $match);
4:
5: print_r($match);
6:
7: //Array ( [0] => src="http://56hd.com/images/logo.gif", [1] => http://56hd.com/images/logo.gif )
使用.*?中的?來實現非貪婪模式匹配。
過濾HTML文檔JS腳本
過濾危險腳本,在WEB設計中很重要。
Code:
1: $script = '
2: href="favicon.ico" rel="CR ICON" alt="[Image]" />
3: href="/templates/WithAD/css/common.css" type="text/css" rel="stylesheet" />
4:
5: var siteUrl = "";
6: var siteUrl = "";
7: var siteUrl = "";
8:
9: <script src="/include/js/ajax.js" type="text/javascript" language="javascript"></script>
10: <script src="/include/js/common.js" type="text/javascript" language="javascript"></script>
11: media="all" href="/styles/kong/index.css" type="text/css" rel="stylesheet" />
12: <script type="text/javascript" src="/templates/WithAD/images/common.js"></script>
13: media="all" href="/styles/china/index.css" type="text/css" rel="stylesheet" />
14:
15:
16: ';
17:
18: $patten = '@