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)这句.