最近用curl抓取了一個網頁,然后匹配正則的時候匹配好很久返回結果都為空,用了正則表達式測試工具測試,發現正則表達式是沒問題的,於是返回查看抓取的網頁代碼,發現源碼是沒有雙引號的,去掉正則表達式中的雙引號,匹配成功了。這樣的問題搞了這么久,無語。
用久了curl后發現curl也就是配置幾個參數,這里寫的是get方法,post方法另外再寫了
$ch=curl_init();
$url="http://i.cnblogs.com/"; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,false); //exec的時候結果是否打印出來 $result=curl_exec($ch); curl_close($ch); var_dump($result);
寫正則表達式總有點糊塗,這里也總結出來
. 匹配除換行符以外的任意字符
\w 匹配字母或數字或下划線或漢字【應該是word的首字母】
\s 匹配任意的空白符 【space首字母】
\d 匹配數字 【英文Digital的首位字母吧】
\b 匹配單詞的開始或結束 【begin首字母】
^ 匹配字符串的開始
$ 匹配字符串的結束
* 重復零次或更多次
+ 重復一次或更多次
? 重復零次或一次
{n} 重復n次
{n,} 重復n次或更多次
{n,m} 重復n到m次
//反義
\W 匹配任意不是字母,數字,下划線,漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數字的字符
\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字符
匹配多行的正則表達式[\w\W]*?
