//匹配文字,這個偶爾比較好用,但是要小心字元中包含\e$str = '[a-z]';
$str = preg_replace('/\g[a-z]\e/', '', $str);
echo $str; //列印空,全被替換掉了,相關大概就是preg_quote功能
//給匹配結果命名,這樣在匹配結果中就可以用這個名稱來獲取值$str = 'abc123abc';
preg_match('/(?p\d+)/', $str, $arr);
echo $arr['num']; //相當於echo $arr[1]
//僅用於分組的括號,匹配內容不會被變數捕獲,有時候需要這樣提高執行效率$str = 'abc123abc';
preg_match('/abc(?:\d+)/', $str, $arr);
echo $arr[1]; //除了$arr[0]外沒有$arr[1]了,不會賦予\1
//插入的好幫手,向前、向後錨點搜尋位置,每3位新增乙個逗號$str = 'fdfad123456789fdfd';
$str = preg_replace('/(?<=\d)(?=(\d)+(?!\d))/', ',', $str);
echo $str; //列印 fdfad123,456,789fdfd
//以最少的結果匹配$str = 123456;
preg_match('/\d+/', $str, $arr);
echo $arr[0]; //是人都知道是123456吧
preg_match('/\d+?/', $str, $arr);
echo $arr[0]; //這次是1
//乙個比較有用的,可以判斷前面的是否有匹配過,比如下邊的例子,可以忽略等號右邊是否有單引號雙引號或者什麼都沒有$str = <<
html;
preg_match_all('/]*>/', $str, $arr);
print_r($arr);
/*array
( [0] => 12
[1] => 13
[2] => 14
)*/
//部分模式修飾符,模式修飾符也可以放在表示式中的//這裡匹配符合xhtml規範的style裡的顏色值,大寫的style被忽略了,但是裡面的color可以大小寫無所謂
$str = '';
preg_match_all('/style=([\'"]?)(?i)color:(\w+)\1(?-i)/', $str, $arr);
print_r($arr[2])
//也可以把匹配內容放到裡面,用:隔開,就不用寫結束(?-i)
//preg_match_all('/style=([\'"]?)(?i:color:(\w+))\1/', $str, $arr);
//再看一例子
$str = 'style';
preg_match('/(?i:style)<\/b>/', $str, $arr);
print_r($arr); //可以匹配到
$str = 'style';
preg_match('/(?i:style)<\/b>/', $str, $arr);
print_r($arr); //什麼都沒匹配到
//單詞檢索,可惜只能用在英文$str = 'i\'m a teacher';
preg_match_all('/\b[a-z]+\b/i', $str, $arr);
print_r($arr)
//u修飾符,按unicode匹配$str = '你您';
$str = preg_replace('/[你您]/', 'you', $str);
echo $str; //被拆開了,列印4次you
//看下面加上u修飾符後的效果,該修飾符需要編碼utf-8否則會報錯
//我的文字都是gb2312,所以要轉成utf-8
$str = iconv('gb2312', 'utf-8', '你您');
$regex = iconv('gb2312', 'utf-8', '/[你您]/u');
$str = preg_replace($regex, 'you', $str);
echo $str; //列印2次you
//x模式修飾符,可以忽略空白和加注釋$str = 'test test';
preg_match('/test #只匹配小寫的test/x', $str, $arr);
print_r($arr);
//排除環視(?/i', $str, $arr);//或者 preg_match('/(?:(?!).)*<\/b>/i', $str, $arr);
print_r($arr)
//當時這樣寫應付不了 $str = 'testtest1test2test3';
//改寫一下正則既可 preg_match_all('/(?:(?!<\/?b>).)*<\/b>/i', $str, $arr);
//根據上面來完成乙個最簡單的ubb替換
$str = 'test [b]test1[b] test2[/b] test3[/b]test';
$str = preg_replace('/\[b\]((?:(?!\[\/?b\]).)*)\[\/b\]/i', '\1', $str);
$str = preg_replace('/\[b\]((?:(?!\[\/?b\]).)*)\[\/b\]/i', '\1', $str);
print_r($str)
//如果已經確認回朔並不會有匹配結果,可以使用固化分組來放棄備用狀態提高效率$str = 'subject';
preg_match('/(\w+):/', $str, $arr);
//用以下方法代替
//在第一組匹配規則匹配到文字末尾t時匹配結束,啟用第二組匹配規則:並不會找到結果,所以這個時候回朔查詢,但是\w不會包含:,所以可以直接放棄,
preg_match('/(?>\w+):/', $str, $arr);
一些常用的正規表示式
常用表示式 d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數...
常用的一些正規表示式
匹配中文字元的正規表示式 u4e00 u9fa5 評注 匹配中文還真是個頭疼的事,有了這個表示式就好辦了 匹配雙位元組字元 包括漢字在內 x00 xff 評注 可以用來計算字串的長度 乙個雙位元組字元長度計2,ascii字元計1 匹配空白行的正規表示式 n s r 評注 可以用來刪除空白行 匹配ht...
一些常用的正規表示式
關鍵字 正規表示式 正規表示式是一種通用的標準,大部分計算機語言都支援正規表示式,包括as3,這裡 出了一些常用的正規表示式語句,大家用到的時候就不用自己寫了 d 匹配非負整數 正整數 0 0 9 1 9 0 9 匹配正整數 d 0 匹配非正整數 負整數 0 0 9 1 9 0 9 匹配負整數 d ...