2007年10月21日 星期日
2007年10月13日 星期六
2007年10月7日 星期日
Regular expression(2)
這篇是對regular expression的解釋
$patterns = array("/((1920)\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
$replace = array("\\3/\\4/\\1", "$\\1=");print preg_replace($patterns, $replace, "{startDate} = 1969-6-19");
1./ 和 / 所夾的部分代表要比對的 pattern
2.^ 代表從字串開頭\s 代表 [\r\n\t\f\v] 換行、跳行、空白字串..
3.代表 0 or 1 or any\w 代表 [a-zA-Z0-9_]+ 代表 1 or any\d 代表 0-9 的數字
所以 " {startDate} =" 亦符合 /^\s*{(\w+)}\s*=/
4.((1920)\d{2}) 代表會搜尋 19 或 20 開頭、並且其後接有兩位數字的 pattern 像是: 1983、2006。
5.\d{2}代表數字需重複兩次,換個角度來說,可看成要尋找兩位數。
\d{1,2}則是至少出現一次、至多出現兩次,如:1、31、99..
6.\\3/\\4/\\1則表示將符合的模式的結果,取代為第三個set/第四個set/第一個set
\\1 表示符合 ((1920)\d{2}) \\2 表示符合 (1920) \\3 表示符合 (\d{1,2}) \\4 表示符合 (\d{1,2})
就本例而言: 1969-6-19 變成 6/19/1969
這篇範例可以讓我門了解到如何在php上表達以及使用regular expression和preg_replace
Regular exepression
下面兩個網頁是針對這個function所有功能的表示
http://tw.php.net/manual/en/ref.pcre.php
http://tw.php.net/manual/en/ref.regex.php
這個function蠻好用的
希望今天能把這部分弄完.
接下來就可以改快來弄美工的部分...