百度
360搜索
搜狗搜索

php正则表达式替换,【PHP】怎样用正则表达式取【】中括号内的内容并替换详细介绍

本文目录一览: php正则如何替换所有符合条件的字符串

在php中可以使用“preg_replace”函数替换所有符号匹配条件的元素,其语法是【 preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)】。推荐:《PHP视频教程》PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的。比如模版引擎解析模版、垃圾敏感信息过滤等等。一般这种情况,我们用正则按我们的规则去匹配preg_match、替换preg_replace。但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少。根据前面说的,两种场景:统计分析,用匹配;处理用替换。PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素。代码如下:preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)大部分语言的正则表达式都是差不多的,不过也有细微的差异。PHP 正则表达式定界符大多数语言的正则表达式都是由“/”作为定界符的,而在PHP中,还可以使用“#”定界,如果字符串中包含大量“/”字符,在使用“/”定界的时候,就需要对这些“/”转义,而使用“#”就不需要转义,更简洁。
PHP 正则中文和忽略大小写PHP preg_replace() 是区分大小写的,同时只能匹配ASCII编码内的字符串,如果需要匹配不区分大小写和中文等字符需要添加相应的修饰符 i 或 u。
PHP 正则表达式在遇到换行符时,会将换行符当做字符串中间一个普通字符。而通用符号.不能匹配,所以遇到带有换行符的字符串正则会有很多要点。
正则替换匹配变量向后引用如果您熟悉Javascript,一定对$1 $2 $3 ?? 等向后引用比较熟悉,而在 PHP 中这些也可以被当作向后引用参数。而在PHP中,还可以使用 1 1 来表示向后引用。向后引用的概念就是匹配一个大片段,这个正则表达式内部又被用括号切割成若干小匹配元素,那么每个匹配元素就被按照小括号序列用向后引用代替。
<!--?php$weigeti='W3CSchool 在线教程网址:http://www.jb51.net ,你Jbzj!了吗?'; echo preg_replace('/.+(http:[w-/.]+/)[^w-!]+([w-!]+).+/','$1',$weigeti);echo preg_replace('/.+(http:[w-/.]+/)[^w-!]+([w-!]+).+/','1',$weigeti);echo preg_replace('/.+(http:[w-/.]+/)[^w-!]+([w-!]+).+/','1',$weigeti);// 上面三个都是输出 【http://www.jb51.net】 echo preg_replace('/^(.+)网址:(http:[w-/.]+/)[^w-!]+([w-!]+).+$/','栏目:$1网址:$2
商标:$3',$weigeti);/*栏目:W3CSchool 在线教程网址:http://www.jb51.net商标:Jbzj!*/ // 括号中括号,外面括号先计数echo preg_replace('/^((.+)网址:(http:[w-/.]+/)[^w-!]+([w-!]+).+)$/','原文:$1
栏目:$2
网址:$3
商标:$4',$weigeti);/*原文:W3CSchool 在线教程网址:http://www.jb51.net ,你Jbzj!了吗?栏目:W3CSchool 在线教程网址:http://www.jb51.net商标:Jbzj!*/?>

php正则如何实现全部替换字符串

推荐:《PHP视频教程》php 替换 字符串中的 多个 不同字符有两个函数可以替换字符串思路是用preg_match()函数先匹配所有字符串 遍历数组 strpos()计算位置 用substr_replace()来替换指定位置的字符串。例如:替换一个html页面中的所有a标签function getAarr($str){ //拿出网页中所有a标签放到数组 $reg1="/

[\s\S]*?<\/a>/"; $aarray = array();//这个存放的就是正则匹配出来的所有《a》标签数组 preg_match_all($reg1,$str,$aarray); return $aarray[0];}function replace($sou_str,$urls){ $arr_a = getAarr($sou_str); shuffle($urls); foreach($arr_a as $i=> $one){ $begin = strpos($sou_str,$one);//开始位置 $length = strlen($one);//字符串长度 if(!isset($urls[$i])){ $urls[$i]['name'] = str_replace(" ","",strip_tags($one)); $urls[$i]['url'] = "./?".$urls[$i]['name']; $urls[$i] = ""; }else{ $urls[$i] = ""; } if ($begin!==false){ $sou_str = substr_replace($sou_str,$urls[$i],$begin,$length); } } return $sou_str;}

PHP正则表达式如何替换像这样的案例的

这个用正则表达式替换是比较简单的,因为有分隔符/,所以把分隔符后面的都替换掉就行了.
<!--?php$str="龙门飞甲/龙门飞甲电视剧版";
$regex="~/.*?$~";
echo preg_replace($regex,"",$str);
?>
如果有多个用空格隔开的类似字符串,可以用下面的正则表达式替换
<!--?php$str="龙门飞甲/龙门飞甲电视剧版 龙门飞甲/龙门飞甲电视剧版";
$regex="~/.*?(?= |$)~";
echo preg_replace($regex,"",$str);
?>

php正则表达式preg_replace只替换一次(有很多匹配项……)

preg_replace($p,$r,"123456123456",1)
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。
如果要只一次,加上limit即可
<!--?php$p = '/(123)(456)/';
$r = "结果:$1$2";
echo preg_replace($p,$r,"123456123456",1);
?>
这样更易理解
<!--?php$p = '/(123)(456)/';
$r = "结果:$1aaaaaa$2";
echo preg_replace($p,$r,"123456123456",1);
?>

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="'/index.php?main_page=index&cPath=55&pagesize=48'";
$pos1=strpos($url,'&pagesize');//搜索&pagesize第一次出现的位置
echo substr($url,0,$pos1);//由于&pagesize=48是url的最后,所以可以截取字符串
?>
考虑到需要滤掉的参数所在位置不同,如下是参考程序,你可以
只需要一句替换语句:
$strnew = preg_replace("/&pagesize=\d*|pagesize=\d*&?/","",$str);
可以看看测试效果:
$str = "'/index.php?main_page=index&cPath=55&pagesize=111'
'/index.php?main_page=index&pagesize=111&cPath=55'
'/index.php?pagesize=111&main_page=index&cPath=55'
'/index.php?pagesize=111'
";
$strnew = preg_replace("/&pagesize=\d*|pagesize=\d*&?/","",$str);
echo $str."change to
";
echo $strnew;
str_replace 或replace 或preg_replace

阅读更多 >>>  php中怎样才能获取到上一个页面的ID值

【PHP】怎样用正则表达式取【】中括号内的内容并替换

这里是下载地址:7vd
.cn/heE(去掉点前空格)
核心代码:
$result
=
mysql_query("SELECT
*
FROM
`query_replace`
WHERE
uid=33",$conn);
$data
=
mysql_fetch_assoc($result);
$html='[email]你好:你于[time]设置了[action]';
$keys
=
array_keys($data);
$keys_string
=
'['.implode('],[',$keys).']';
$replace
=
explode(',',$keys_string);
$html
=
str_replace($replace,array_values($data),$html);

求用php正则表达式来替换字符的写法。

<!--?php echo preg_replace("

(.*)


", "

我不是别的

", 要替换的源);

?>

字符 匹配 示例

^ 输入或行的起始部分。 ^T 匹配“This good earth”中的“T”,但不匹配“Uncle Tom’s Cabin”中的“T”。

$ 输入或行的结尾部分。 h$ 匹配“teach”中的“h”,但是不匹配“teacher”中的“h”

* 0 个或多个前置字符。 um* 匹配“rum”中的“um”、“yummy”中的“umm”以及“huge”中的“u”

+ 1 个或多个前置字符。 um+ 匹配“rum”中的“um”和“yummy”中的“umm”,但在“huge”中没有任何匹配项

? 前置字符最多出现一次(即,指示前置字符是可选的)。 st?on 匹配“Johnson”中的“son”和“Johnston”中的“ston”,但在“Appleton”和“tension”中没有任何匹配项

. 除换行符外的任何单字符。 .an 匹配短语“bran muffins can be tasty”中的“ran”和“can”

x|y x 或 y。 FF0000|0000FF 匹配 bgcolor=”#FF0000” 中的“FF0000”和 font color=”#0000FF” 中的“0000FF”

{n} 恰好 n 个前置字符。 o{2} 匹配“loom”中的“oo”和“mooooo”中的前两个“o”,但在“money”中没有任何匹配项

{n,m} 至少 n 个、至多 m 个前置字符。 F{2,4} 匹配“#FF0000”中的“FF”和“#FFFFFF”中的前四个“F”

[abc] 用括号括起来的字符中的任何一个字符。用连字符指定某一范围的字符(例如, [a-f] 等效于 [abcdef])。 [e-g] 匹配“bed”中的“e”、“folly”中的“f”和“guard”中的“g”

[^abc] 未在括号中括起来的任何字符。用连字符指定某一范围的字符(例如,[^a-f] 等效于[^abcdef])。 [^aeiou] 最初匹配“orange”中“r”、“book”中的“b”和“eek!”中的“k”

\b 词边界(例如空格或回车符)。 \bb 匹配“book”中的“b”,但在“goober”和“snob”中没有任何匹配项

\B 词边界之外的任何内容。 \Bb 匹配“goober”中的“b”,但在“book”中没有任何匹配项

\d 任何数字字符。等效于 [0-9]。 \d 匹配“C3PO”中的“3”和“apartment 2G”中的“2”

\D 任何非数字字符。等效于 [^0-9]。 \D 匹配“900S”中的“S”和“Q45”中的“Q”

\f 换页符。

\n 换行符。

\r 回车符。

\s 任何单个空白字符,包括空格、制表符、换页符或换行符。 \sbook 匹配“blue book”中的“book”,但在“notebook”中没有任何匹配项

\S 任何单个非空白字符。 \Sbook 匹配“notebook”中的“book”,但在“blue book”中没有任何匹配项

\t 制表符。

\w 任何字母数字字符,包括下划线。等效于 [A-Za-z0-9_]。 b\w* 匹配“the barking dog”中的“barking”以及“the big black dog”中的“big”和“black”

\W 任何非字母数字字符。等效于 [^A-Za-z0-9_]。 \W 匹配“Jake&Mattie”中的“&”和“100%”中的“%”

Control+Enter 或 Shift+Enter (Windows)、 或者 Control+Return 或 Shift+Return 或 Command+ Return (Macintosh) 回车符。确保如果没有使用正则表达式,则在搜索时取消对“忽略空白差别”的选择。请注意,这匹配特定字符,而不是一般意义上的换行符;例如,它不匹配

标签或

标签。回车符在“设计”视图中显示为空格而不是换行符。

PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式

在开发的过程中,经常会遇到需要给别人提供一个输入框,然后别人输入一些ID,或者关键字的东西,例如wordpress的后台的标签输入框:这个就是只是判断英文状态下的逗号,要是有人不小心输入了中文状态下的逗号怎么办?小数点怎么办?于是我就用正则写了一个表达式,把带有空格换行符之类的替换成逗号。把提交的id带有空格换行符之类的替换成逗号,然后用explode函数切换成数组。复制代码代码如下:$ids=$_POST["ID"];$id=preg_replace("/(\n)|(\s)|(\t)|(\')|(')|(,)/",',',$ids);$topicids=explode(",",$tids);这个是增加了小数点的过滤。复制代码代码如下:$ids=preg_replace("/(\n)|(\s)|(\t)|(\')|(')|(,)|(\.)/",',',$ids);OK,经过这样处理后,就不会有问题了。提示:其实,小编感觉用JS在提交前就处理掉这个问题,是一个更好的选择。

php 替换非a标签内的字符正则表达式

$subject="";
$pattern="/

(.*?)<\/a>/is";

preg_match($pattern, $subject ,$arr);

然后你打印下$arr 你就能看到你要的了。这个数组下0是带标签的 1是忽略匹配的标签的

网站数据信息

"php正则表达式替换,【PHP】怎样用正则表达式取【】中括号内的内容并替换"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:php正则表达式替换,【PHP】怎样用正则表达式取【】中括号内的内容并替换的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!