當前位置:首頁 » 編程語言 » phpurl正則

phpurl正則

發布時間: 2024-01-11 08:29:17

php 正則表達式如何添加URL參數 ,並把&替換成amp;

preg_replace('/(&|\\?)pagesize=[^&]+/', '', $_SERVER['REQUEST_URI']) str_replace 或replace 或preg_replace 用正則是比較笨的辦法

❷ PHP正則表達式的使用技巧

PHP正則表達式的定義

用於描述字元排列和匹配模式的一種語法規則 它主要用於字元串的模式分割 匹配 查找及替換操作

PHP中的正則函數

PHP中有兩套正則函數 兩者功能差不多 分別為

一套是由PCRE(Perl Compatible Regular Expression)庫提供的 使用 preg_ 為前綴命名的函數

一套由POSIX(Portable Operating System Interface of Unix )擴展提供的 使用以 ereg_ 為前綴命名的函數 (POSIX的正則函數庫 自PHP 以後 就不在推薦使用 從PHP 以後 就將被移除)

由於POSIX正則即將推出歷史舞台 並且PCRE和perl的形式差不多 更利於我們在perl和php之間切換 所以這里重點介紹PCRE正則的使用

PCRE正則表達式

PCRE全稱為Perl Compatible Regular Expression 意思是Perl兼容正則表達式

在PCRE中 通常將模式表達式(即正則表達式)包含在兩個反斜線 / 之間 如 /apple/

正則中重要的幾個概念有 元字元 轉義 模式單元(重復) 反義 引用和斷言 這些概念都可以在文章[ ]中輕松的理解和掌握

常用的元字元(Meta character)

元字元 說明

/A 匹配字元串串首的原子

/Z 匹配字元串串尾的原子

/b 匹配單詞的邊界 //bis/ 匹配頭為is的字元串 /is/b/ 匹配尾為is的字元串 //bis/b/ 定界

/B 匹配除單詞邊界之外的任意字元 //Bis/啟局 匹配單詞 This 中的 is

/d 匹配一個數字 等價於[ ]

/D 匹配除數字以外任何一個字元 等價於[^ ]

/w 匹配一個英文字母 數字或下劃線 等價於[ a zA Z_]

/W 匹配除英文字母 數字和下劃線以外任何一個字元 等價於[^ a zA Z_]

/s 匹配一個空白字元 等價於[/f/t/v]

/S 匹配除空白字元以外任何一個字元 等價於[^/f/t/v]

/f 匹配一個換頁符等價於 /x c 或 /cL

匹配段旁鋒一個換行符 等價於 /x a 或 /cJ

匹配一個回車符等價於/x d 或 /cM

/t 匹配一個製表符 等價於 /x /或/cl

/v 匹配一個垂直製表符 等價於/x b或/ck

/oNN 匹配一個八進制數字

/xNN 匹配一個十六進制數字

/cC 匹配一個控制字元

模式修正符(Pattern Modifiers)

模式修正符在忽略大小寫 匹配多行中使用特別多 掌握了這一個修正符 往往能解決我們遇到的很多問題

i -可同時匹配大小寫字母

M -將字元串視為多行

S -將字元串視為單行 換行符做普通字元看待 使 匹配任何字元

X -模式中的空白忽略不計

U -匹配到最近的字元串

e -將替換的字元串作為表達使用

格式 /apple/i匹配 apple 或 Apple 等 忽略大小寫 /i

PCRE的模式單元

// 提取第一位的屬性

/^/d{ } ([/W])/d{ }// /d{ }$匹配 / / 等字元串 但上述正則表達式不匹配 / 的格式 這是因為模式 [/W] 的結果 / 已經被存儲 下個位置 / 引用時 其匹配模式也是字元 /

當不需要存儲匹配結果時使用非存儲模式單元 (? )

例如/(?:a|b|c)(D|E|F)// g/ 將匹配 aEEg 在一些正則表達式中 使握晌用非存儲模式單元是必要的 否則 需要改變其後引用的順序 上例還可以寫成/(a|b|c)(C|E|F)/ g/

PCRE正則表達式函數

以下為引用的內容

preg_match()和preg_match_all() preg_quote() preg_split() preg_grep() preg_replace()

函數的具體使用 我們可以通過PHP手冊來找到 下面分享一些平時積累的正則表達式

匹配action屬性

以下為引用的內容

$str = ; $match = ; preg_match_all( //s+action=/ (?!)( *?)/ /s/ $str $match); print_r($match);

在正則中使用回調函數

以下為引用的內容

/** * replace some string by callback function * */ function callback_replace() { $url = ; $str = ; $str = preg_replace ( /(?<=/saction=/ )(?!)( *?)(?=/ /s)/e search(/$url // ) $str ); echo $str; } function search($url $match){ return $url / $match; }

帶斷言的正則匹配

以下為引用的內容

$match = ; $str = xxxxxx cn bold font paragraph text

; preg_match_all ( /(?<=<(/w{ })>) *(?=</// >)/ $str $match ); echo 匹配沒有屬性的HTML標簽中的內容 ; print_r ( $match );

替換HTML源碼中的地址

以下為引用的內容

$form_ = preg_replace ( /(?<=/saction=/ |/ssrc=/ |/s)(?!|javascript)( *?)(?=/ /s)/e add_url(/$url / // / ) $form_ );

lishixin/Article/program/PHP/201311/21027

❸ PHP 正則表達式如何替換URL參數

用正則是比較笨的辦法,但也給你提供一下了:

function getpage(){
//你可以把獲取當前page的代碼放在函數里
return 123;
}

$str = 'index.php?main_page=index&cPath=55&pagesize=48';
$ptn = '/&pagesize=(\d+)/';
$pagenum = getpage();
$rep = '&pagesize='.$pagenum;

echo $str; // 輸出:index.php?main_page=index&cPath=55&pagesize=48

preg_replace($ptn,$rep,$str);

echo $str; // 輸出:index.php?main_page=index&cPath=55&pagesize=123

另外多說一下,這種情況可以使用
http_build_query()
這個函數。

具體使用方法:
$u['main_page']=$_GET['main_page'];
$u['cPath']=$_GET['cPath'];
$u['pagesize']=getpage();

$url = 'index.php?'.http_build_query($u);
echo $url;

這個函數很好用,比你自己去匹配好。

❹ php如何使用正則表達式匹配url圖片啊

可以這樣:

$image="http://xxxxxxxxx.jpg"
preg_match("/(http://)?w+.jpg/",$image,$matches);//http://可要可不要
echo$matches[0];//$matches[0]即為匹配的圖片路徑

以上只是匹配jpg類型的圖片

如果要匹配其他類型可以這樣使用

preg_match("/(http://)?w+.(jpg|jpeg|gif|png)/",$image,$matches);
echo$matches[0];

❺ 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";
?>

❻ 超常用的PHP正則表達式收集整理

以下就是對超常用的PHP正則表達式進行的收集整理,為了方便大家更快更好的掌握php正則表達式。
一、表單驗證匹配
驗證賬號,字母開頭,允許
5-16
位元組,允許字母數字下劃線:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
驗證賬號,不能為空,不能有空格,只能是英文字母:^\S+[a-z
A-Z]$
驗證賬號,不能有空格,不能非數字:^\d+$
驗證用戶密碼,以字母開頭,長度在
6-18
之間:^[a-zA-Z]\w{5,17}$
驗證是否含有
^%&',;=?$\
等字元:[^%&',;=?$\x22]+
匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配騰訊QQ號:[1-9][0-9]{4,}
匹配日期,只能是
2004-10-22
格式:^\d{4}\-\d{1,2}-\d{1,2}$
匹配國內電話號碼:^\d{3}-\d{8}|\d{4}-\d{7,8}$------------評註:匹配形式如010-12345678
或0571-12345678

0831-1234567
匹配中國郵政編碼:^[1-9]\d{5}(?!\d)$
匹配身份證:\d{14}(\d{4}|(\d{3}[xX])|\d{1})------------評註:中國的身份證為15
位或18

不能為空且二十位元組以上:^[\s|\S]{20,}$
二、字元匹配
匹配由
26
個英文字母組成的字元串:^[A-Za-z]+$
匹配由
26
個大寫英文字母組成的字元串:^[A-Z]+$
匹配由
26
個小寫英文字母組成的字元串:^[a-z]+$
匹配由數字和
26
個英文字母組成的字元串:^[A-Za-z0-9]+$
匹配由數字、26個英文字母或者下劃線組成的字元串:^\w+$
匹配空行:\n[\s|
]*\r
匹配任何內容:[\s\S]*
匹配中文字元:[\x80-\xff]+
或者
[\xa1-\xff]+
只能輸入漢字:^[\x80-\xff],{0,}$
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
三、匹配數字
只能輸入數字:^[0-9]*$
只能輸入n位的數字:^\d{n}$
只能輸入至少n位數字:^\d{n,}$
只能輸入m-n位的數字:^\d{m,n}$
匹配正整數:^[1-9]\d*$
匹配負整數:^-[1-9]\d*$
匹配整數:^-?[1-9]\d*$
匹配非負整數(正整數
+
0):^[1-9]\d*|0$
匹配非正整數(負整數
+
0):^-[1-9]\d*|0$
匹配正浮點數:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
匹配負浮點數:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
匹配浮點數:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
匹配非負浮點數(正浮點數
+
0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
匹配非正浮點數(負浮點數
+
0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
四、其他
匹配HTML標記的正則表達式(無法匹配嵌套標簽):<(\S*?)[^>]*>.*?</\1>|<.*?
/>
匹配網址
URL
:[a-zA-z]+://[^\s]*
匹配
IP
地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
提示
上述正則表達式通常都加了
^

$
來限定字元的起始和結束,如果需要匹配的內容包括在字元串當中,可能需要考慮去掉
^

$
限定符。
以上正則表達式僅供參考,使用時請檢驗後再使用,希望通過這些超常用的PHP正則表達式

❼ php 正則中 這個表示什麼 /\</i 原句是preg_match('/\</i',$url)

你好,preg_match函數是php內置的一個正則匹配函數,它的匹配規則必須加上前後/;比如我要匹配字元a 可以這樣寫 preg_match('/a/',$url); 而你那個是 /\</i 裡面的\是個轉義字元(特殊字元需要轉義)而i表示忽略大小寫,其實按照你的這個匹配要求可以不用寫i ;自然你這個的意思就是匹配<

如果$url這個字元串中包含<則返回1否則返回0(preg_match(pattern,$url)返回 pattern 的匹配次數。 它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後 將會停止搜索)

熱點內容
塵歌壺怎麼修改配置 發布:2024-11-30 03:31:42 瀏覽:619
我的世界聯機為什麼無法連接至伺服器 發布:2024-11-30 03:05:49 瀏覽:48
安卓手機鎖屏的圖片在哪裡找到 發布:2024-11-30 03:00:49 瀏覽:189
安卓手機紅點怎麼去除 發布:2024-11-30 02:52:04 瀏覽:597
安卓手機屏幕標識怎麼變大 發布:2024-11-30 02:47:07 瀏覽:975
牆加密區域 發布:2024-11-30 02:33:32 瀏覽:631
idrac中怎麼控制伺服器 發布:2024-11-30 02:18:27 瀏覽:911
蜘蛛礦池伺服器地址 發布:2024-11-30 02:13:57 瀏覽:170
網易雲訪問記錄 發布:2024-11-30 02:13:17 瀏覽:377
java的數據類型有哪些 發布:2024-11-30 02:12:42 瀏覽:547