php 如何正则替换

发布网友 发布时间:2022-04-06 00:33

我来回答

2个回答

懂视网 时间:2022-04-06 04:54

在php中可以使用正则表达式“preg_replace ( $pattern , $replacement , $subject , $limit , $count)”实现查找替换。

推荐:《PHP视频教程》

php 正则搜索和替换 preg_replace

preg_replace — 执行一个正则表达式的搜索和替换

方法说明:

preg_replace ( $pattern , $replacement , $subject , $limit , $count)

搜索subject中匹配pattern的部分, 以replacement进行替换。

$limit , $count 参数可有可无

limit : 每个模式在每个subject上进行替换的最大次数。默认是 -1(无限)。

count : 如果指定,将会被填充为完成的替换次数。

返回值 :

如果subject是一个数组, preg_replace()返回一个数组, 其他情况下返回一个字符串。

如果匹配被查找到,替换后的subject被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL 。

实例1:

<?php
$PIWIK_API = 'filter_offset={offset}&period={period}&date={date}';
$patterns = array(
 '/{offset}/',
 '/{period}/',
 '/{date}/'
);
$replacements = array(
 33,
 'day',
 '216-11-11'
);
$url = preg_replace($patterns, $replacements, $PIWIK_API);
//结果: $url = "filter_offset=33&period=day&date=216-11-11"

实例2:

<?php
$PIWIK_API = array(
 'filter_offset' => '{offset}',
 'period' => '{period}',
 'date' => '{date}'
);
$patterns = array(
 '/{offset}/',
 '/{period}/',
 '/{date}/'
);
$replacements = array(
 33,
 'day',
 '216-11-11'
);
$url = preg_replace($patterns, $replacements, $PIWIK_API);
//结果: 
/*
$url = array(3) {
 ["filter_offset"]=>
 string(2) "33"
 ["period"]=>
 string(3) "day"
 ["date"]=>
 string(9) "216-11-11"
}
*/

热心网友 时间:2022-04-06 02:02

很简单,代码如下(其实不用正则也可以,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追问我就是正则表达式不会写啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com