phpreplace正則
❶ php正則替換變數數字「str_replace」怎麼用
PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:HypertextPreprocessor)的縮寫。PHP是一種HTML內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。
PHP獨特的語法混合了C、Java、Perl以及PHP自創新的語法。它可以比CGI或者Perl更快速的執行動態網頁。
PHP最初是由勒多夫在1995年開始開發的;現在PHP的標准由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放源代碼許可協議GPL不兼容。
$str="news-123";
$str=preg_replace('/news-(d+)/','news',$str);
echo $str;
換個函數哦,str_replace是不支持正則的
❷ php 如何正則替換
很簡單,代碼如下(其實不用正則也可以,strstr()與str_replace()函數也能替換):
// 需要替換的字元串
$string = 'D:\wwwroot\cms\index.php'; // 假設一個路徑
// 正則樣式
$pattern = '/\\/';
// 檢測是否需要替換
if (preg_match($pattern, $string)) {
// 開始替換\為/
$string = preg_replace($pattern, '/', $string);
}
// 輸出替換後的字元串
echo $string; // D:/wwwroot/cms/index.php
❸ php正則替換
不需要正則:
<?php
$str = '|52|53|54|55|56|';
$str = str_replace('|', ',', trim($str, '|'));
echo $str . "\n";
代碼運行通過請採納,謝謝!
❹ php 的 preg_replace 函數中的 正則表達式問題 為什麼是 preg_replace("/(.*)[\/\\\]/",'',$text)
轉義是有兩個地方的,一個是PHP解析器,一個是PHP內的正則表達式解析器。
PHP代碼在運行的時候,所有使用引號的PHP常量都會被解析一次,字元串如果是一個正則表達式,交給正則引擎又會被解析一次。
所以,當表達式中要用到一個 \ 的時候,需要寫兩個,也就是 \\ 而當表達式需要兩個的時候,需要寫四個,也就是 \\\\。
當字元串 "\\\\" 經過PHP編譯引擎的時候轉義一次,得到 "\\" 這個字元串,然後再傳遞給正則引擎執行正則匹配,再被解析轉義一次,得到 "\"
你的代碼 preg_replace("/(.*)[\/\\\]/",'',$text) 中的表達式 "/(.*)[\/\\\]/" 經過PHP編譯引擎後,得到的是 "/(.*)[\/\\]/" ,因為] 符號在PHP引擎中是不需要轉義的,所以 \ 符號原樣輸出。當 "/(.*)[\/\\]/" 進入正則引擎的時候,解析得到 /(.*)[/\]/
引用的地址是PHP官方的解釋:
replacement中可以包含後向引用\\n
或(php 4.0.4以上可用)$n, 語法上首選後者. 每個
這樣的引用將被匹配到的第n個捕獲子組捕獲到的文本替換. n
可以是0-99, \\0和$0代表完整的模式匹配文本.
捕獲子組的序號計數方式為: 代表捕獲子組的左括弧從左到右, 從1開始數. 如果要在replacement
中使用反斜線, 必須使用4個("\\\\", 譯注: 因為這首先是php的字元串, 經過轉義後, 是兩個, 再經過
正則表達式引擎後才被認為是一個原文反斜線).
❺ php正則替換字元串
$pattern
=
"/(?:http|https|ftp):\/\/\w+\.\w+\.(?:com|e|net)(?:\.cn)?/ie";
//直接通過正則進行替換
//(反向)後向引用(就是將之前查詢出的內容,在preg_replace的第二個參數當中去使用)
//$str
=
preg_replace($pattern,'<a
href="\\0">\\0</a>',$str);//推薦使用
$str
=
preg_replace($pattern,'\'<a
href="$0">\'.strtoupper("$0").\'</a>\'',$str);
正則需要自己寫
沒個人寫的正則都不一樣。希望採納
❻ php如何進行正則替換
按照你的要求把h後的數字和w後的任意數字替換成固定數的php程序如下
<?php
$fix='555';//固定數
$str='asdasda/w/100/h/200/q/sdasdsad';
$regex1="~h/[0-9]+~";
$result=preg_replace($regex1,"h/".$fix,$str);
$regex2="~w/[0-9]+~";
$result=preg_replace($regex2,"w/".$fix,$result);
print_r($result);
?>
運行結果
asdasda/w/555/h/555/q/sdasdsad
❼ php關於preg_replace替換正則的問題
在這個替換表達式中~ '\\' + '數字' 。表示對應正則的第N塊正則式~ (也就是『()』小括弧括起來的小部分)
比如php幫助文檔給出的
<?php
preg_replace ("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
?>
這里就是把所有HTML變成大寫~
而 '/' + 『數字』 ~其實我還真沒找到相關的資料,我像是被認為了無法解讀的字元串吧~一般都被正則忽略了。。如果你想匹配\9~多大幾個斜杠吧~我試驗了下~3個就好~
為了說明我說的上例~你修改一下代碼~就能看到一些不同~
$str = 'abcds';
$tostr = "mm\\1sd;";
$out = preg_replace('/a(b)cd/', $tostr, $str);
echo $out;
----------------------
看到樓上的答案了。哦,原來是這樣~呵呵。受教啦~
❽ PHP的preg_replace 正則替換
preg_replace("/http:\/\//","",$message)
$message = preg_replace(array(
"/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
"/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
"/http:\/\//" //加的,,
), $allowimgcode ? array(
"bbcodeurl('\\1', '<img src=\"%s\" onload=\"thumbImg(this)\" alt=\"\" />')",
"bbcodeurl('\\3', '<img width=\"\\1\" height=\"\\2\" src=\"%s\" border=\"0\" alt=\"\" />')"
) : array(
"bbcodeurl('\\1', '<a href=\"%s\" target=\"_blank\">%s</a>')",
"bbcodeurl('\\3', '<a href=\"%s\" target=\"_blank\">%s</a>')"
), $message);
其實你也可以在它處理完後加preg_replace("/http:\/\//","",$message)這句.