① php正則表達式給圖片添加超鏈接,href的值為圖片src的值
PHP的不會寫
匹配的正則表達式:
<imgs*src="([^"]+)"(s*title[sS]+?>)
匹配的結果為:
$1為1.jpg
$2為title="123.jpg"alt="論壇活動"/>
替換的時候使用1與2即可
替換字元串:
<ahref="1"><imgsrc="/url.html?1"2</a>
② PHP 正則驗證URL網址格式是否有效
PHP中的ereg()函數常用於驗證URL地址格式是否正確。此函數返回布爾值,用於指示驗證結果。下面是一個簡單的函數示例,用於檢查URL的有效性:
function CheckUrl($C_url){
if (!ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", $C_url))
{
return false;
}
return true;
}
這個函數接收一個URL作為參數,通過正則表達式進行驗證。如果URL不符合規則,函數返回false;反之,則返回true。正則表達式定義了URL的基本結構,確保其符合標准格式。
例如,正則表達式"^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$"可以解析出http或https開頭的URL,其中[_a-zA-Z0-9-]+表示以字母、數字或破折號開頭的字元串,(.[_a-zA-Z0-9-]+)*則表示可能存在的子域名部分。
利用ereg()函數進行URL驗證是一種簡單有效的方法。然而,需要注意的是,ereg()函數在PHP7中已被棄用,應考慮使用preg_match()等替代方法。preg_match()同樣基於正則表達式,但在性能和功能上更為強大。
總之,通過正則表達式驗證URL格式是確保數據完整性的重要步驟,特別是在處理用戶輸入時。正確的URL驗證能夠幫助防止潛在的安全威脅,並確保應用程序的正常運行。
③ 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 正則表達式 只能包含字母和數字
式子:/^[a-zA-Z0-9]+$/u
釋義:
"/":表示正則表達式的定義,固定寫法。
"^":表示開頭。
"[]":表示字元組。匹配所包含的任意一個字元。如,「[ab]」匹配「plain」中的「a」。
"a-z":表示匹配小寫字母a-z的字母範圍。
"A-Z":表示匹配大寫字母A-Z的字母範圍。
"0-9":表示匹配0-9的數字范圍。
"+":表示匹配次數大於等於1。
"$":匹配輸入行尾。如果設置了RegExp對象Multiline屬性,$也匹配「 」或「 」之前的位置。
"u":最後的u是模式修飾符,嚴格的說可能叫預定義常量。表示使用unicode進行匹配。
(4)php鏈接正則表達式擴展閱讀:
其它正則表達式符號的含義:
1、"*":匹配前面的子表達式任意次。例如,zo*能匹配「z」,也能匹配「zo」以及「zoo」。*等價於{0,}。
2、"?":匹配前面的子表達式零次或一次。例如,「do(es)?」可以匹配「do」或「does」。?等價於{0,1}。
3、"{n}":n是一個非負整數。匹配確定的n次。例如,「o{2}」不能匹配「Bob」中的「o」,但是能匹配「food」中的兩個o。
4、"{n,}":n是一個非負整數。至少匹配n次。例如,「o{2,}」不能匹配「Bob」中的「o」,但能匹配「foooood」中的所有o。「o{1,}」等價於「o+」。「o{0,}」則等價於「o*」。
5、"{n,m}":m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}」將匹配「fooooood」中的前三個o為一組,後三個o為一組。「o{0,1}」等價於「o?」。請注意在逗號和兩個數之間不能有空格。
⑤ PHP 正則表達式如何添加URL參數 ,並把&替換成amp;
preg_replace('/(&|\\?)pagesize=[^&]+/', '', $_SERVER['REQUEST_URI']) str_replace 或replace 或preg_replace 用正則是比較笨的辦法
⑥ 超常用的PHP正則表達式收集整理
以下就是對超常用的PHP正則表達式進行的收集整理,為了方便大家更快更好的掌握php正則表達式。
:]*$!是對php中單引號的轉義。或者還有更簡單的!^/?[a-z0-9=:]*$!ii表示忽略大小寫。模式分隔符就是為了區分表達式和像i這樣的模式修飾符而設計的。
什麼是正則表達式:簡單的說,正則表達式是一種可以用於模式匹配和替換的強大工具。在幾乎所有的基於UNIX/LINUX系統的軟體工具中找到正則表達式的痕跡,例如:Perl或PHP腳本語言。
ThinkPHP的自動驗證常用的正則一般我們見的比較多的是設置規則為require、email之類的,其實這些本身也是屬於正則表達式驗證方式,只是系統內置定義了一些常用的正則表達式而已。
關鍵地方是漢字的表示xa0-xff。下面是我寫的例子程序,調試通過:?phpstr=漢字123456abcdef+-*/ABCDE!@#$%^&*()結尾。