php中preg_replace替换变量指定字符例子

 更新时间:2016年11月25日 17:41  点击:1738
字符替换对于学php程序开发的人员来讲估计都觉得不是事了,在此小编为各位整理一些关于替换变量中字符的一些例子,希望对各位有帮助。

preg_replace字符替换例子

这里介绍三种常用方法.

 代码如下 复制代码

方法一:

<?php
$str = preg_quote('(银子)');
$txt = '我的呢称(银子)';
echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt);
?>

方法二:

<?php
$str = quotemeta('(银子)');
$txt = '我的呢称(银子)';
echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt);
?>

方法三:

<?php
$str = '(银子)';
$txt = '我的呢称(银子)';
echo preg_replace("/(Q$strE)/","<span style='color:#f00;'>$1</span>",$txt);
?>

三种方法都返回同样结果.. PHP中的Perl风格正则与Perl完全一样.连quotemeta也是通用的..

str_replace() 函数使用一个字符串替换字符串中的另一些字符


function strreplace($str){
      $str = stripslashes($str);
      $str = str_replace(chr(92),'',$str);
      $str = str_replace(chr(47),'',$str);
      $str = str_replace(chr(10).chr(13),"<br>",$str);
      $str = str_replace('<',"&lt;",$str);

      $str = str_replace('>',"&gt;",$str);
      $str = str_replace(';',";",$str);
      $str = str_replace('"',"“",$str);
      $str = str_replace("'","‘",$str);
      $str = str_replace(" "," ",$str);
      $str = str_replace("/**/"," ",$str);

      return trim($str);
}

 双引号替换问题

$tmp_data= str_replace("\"","",$tmp_data);双引号替换为空字符串

$tmp_data= str_replace("\"","'",$tmp_data);双引号替换为单引号

当然ereg_replace 作为正则表达式必须关注的,也要提示一下

正则表达试对数据的验证是非常的简单了我们直接可以使用preg_match进行验证了,下面我们来看看小编整理的两个数字验证的两个函数。

安全验证的时候就需要这个判断了下面有2个判断一个是判断需要输入的指定数量一个是几位数至几位数下面就是第一种的判断

php 数字长度是否为11位数组

<?php
$text = "111111111112";
if(preg_match('/^\d{11}$/', $text)){
echo "y";
}else{
echo "n";
}
?>

第二种为 判断是否为 4 位数到 11 位数

<?php
$text = "1111111";
if(preg_match('/^\d{6,11}$/', $text)){
echo "y";
}else{
echo "n";
}
?>

第三种,

echo $符合条件 = is_numeric($表单变量) && (($len = strlen($表单变量)) == 16 || $len == 18);

或者:

echo $符合条件 = preg_match("/^\d{16}|\d{18}$/", $表单变量);

数字正则比字母来看是相对来说比较容易的了,下文小编给各位整理了几段数字正则表达式了,有兴起的可以进入 来看看。

例子,提取字符串中的数字

$str = ereg_replace('[^0-9]',",$str);和

$str = preg_replace( '/[^\d]/ ', ' ',$str);


数字正则过滤

if(preg_match("/^\d*$/",$yebihai))  
echo('是数字');
else 
echo('不是数字');

或者用函数

if(is_numeric($yebihai))
echo('是数字');
else
echo('不是数字');

下面验证数字一些正确

验证数字:^[0-9]*$
验证n位的数字:^\d{n}$
验证至少n位数字:^\d{n,}$
验证m-n位的数字:^\d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^\+?[1-9][0-9]*$
验证非零的负整数:^\-[1-9][0-9]*$
验证非负整数(正整数 + 0)  ^\d+$
验证非正整数(负整数 + 0)  ^((-\d+)|(0+))$

网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例.

 匹配网址 URL 的正则表达式:

 代码如下 复制代码

(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)

示例:PHP 正则表达式自动匹配字符串是否为 url 地址,是的话自动加上链接。

 代码如下 复制代码

<?php   
function autolink($rurl){   
   $rurl = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_
\+.~#?&//=]+)', '<a href="\1" target=_blank rel=nofollow>\1
</a>', $rurl);   // rel=nofollow 是告诉搜索引擎不要去抓取这个链接  
   if( strpos($rurl "http") === FALSE ){   
      $rurl = eregi_replace('(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+
)', '<a href="http://\1" target=_blank rel=nofollow >\1</a>', $rurl);
      }else{   
         $rurl = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@
:%_\+.~#?&//=]+)', '\1<a href="http://\2" target=_blank rel=nofol
low>\2</a>', $rurl);   
   }   
   return $rurl;   
}   
?>

调用 autolink() 函数

 代码如下 复制代码


<?php   
$str = 'http://www.111cn.net';   
echo autolink($str);   
?>


例子1 获得https开头的例子

 代码如下 复制代码

//https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?

//PHP Example: Automatically link URL's inside text.

$text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $text);


例子2 直接提取页面中<a 中的url地址

 代码如下 复制代码
function match_links($document) {
preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links);
while(list($key,$val) = each($links[2])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[3])) {
if(!empty($val))
$match['link'][] = $val;
}
while(list($key,$val) = each($links[4])) {
if(!empty($val))
$match['content'][] = $val;
}
while(list($key,$val) = each($links[0])) {
if(!empty($val))
$match['all'][] = $val;
}
return $match;
}

好了到此关于正则获得url地址也就介绍完了,上面的几个例子各有所长了,大家可以根据自己的需求来选择更合适自己的匹配验证提取网址URL正则。

 

在正则表达式中(.*)和(.*?)有什么区别呢,小编看就去星号全部是代表所有字符了,那么后面的问号又是什么功能呢,下面一起来看看吧.

当正则表达式中包含重复量词(如:*,?,+)时,通常的行为是匹配尽可能多的字符,比如:a(.*)b去匹配aabab字符串,它会匹配整个字符串,这被称为贪婪匹配。


$str = 'aabab';
preg_match("/a(.*)b/", $str, $matches);
print_r($matches);

array([0]=>aabab [1]=>[aba])

有的时候我们需要懒惰匹配,也就是匹配尽可能少的字符,在量词后边加一个问号?,比如(.*?)在能使整个匹配成功的前提下使用最少的重复。

$str = 'aabab';
preg_match("/a(.*?)b/", $str, $matches);
print_r($matches);

array([0]=>aab [1]=>[a])

解析

?涉及到贪婪模式

当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧:

a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)

[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • R语言 如何删除指定变量或对象

    这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
  • Linux下PHP安装curl扩展支持https例子

    安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
  • 解决vue的router组件component在import时不能使用变量问题

    这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • Vue select 绑定动态变量的实例讲解

    这篇文章主要介绍了Vue select 绑定动态变量的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-23
  • 深入理解PHP变量的值类型和引用类型

    在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型,在使用的时候,需要注意这一点。看到网友在讨论PHP的&符号,要彻底理解它的用法,就有必要讨论一下变量的两种形式。PHP的变量在内存中是这样...2015-10-23
  • java中String类型变量的赋值问题介绍

    下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
  • C#不同类型的成员变量(字段)的默认值介绍

    虽然C#编译器为每个类型都设置了默认类型,但作为面向对象的设计原则,我们还是需要对变量进行正确的初始化。实际上这也是C#推荐的做法...2020-06-25
  • php使用floor去掉小数点的例子

    floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
  • 详解ES6实现类的私有变量的几种写法

    这篇文章主要介绍了详解ES6实现类的私有变量的几种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-10
  • python 实现循环定义、赋值多个变量的操作

    这篇文章主要介绍了python 实现循环定义、赋值多个变量的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Nest.js环境变量配置与序列化详解

    这篇文章主要给大家介绍了关于Nest.js环境变量配置与序列化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-21
  • C++变量,常量,数组和字符串详解

    这篇文章主要介绍了C++变量,常量,数组和字符串,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助...2021-10-21
  • 在JS中如何使用css变量详解

    这篇文章主要给大家介绍了关于如何在JS中如何使用css变量以及export之javascript关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2021-09-02
  • C#设置与获取环境变量的方法详解

    这篇文章主要给大家介绍了关于C#设置与获取环境变量的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。...2020-06-25
  • js replace(a,b)之替换字符串中所有指定字符的方法

    下面小编就为大家带来一篇js replace(a,b)之替换字符串中所有指定字符的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-08-24
  • 基于条件变量的消息队列 说明介绍

    本篇文章小编为大家介绍,基于条件变量的消息队列 说明介绍。需要的朋友参考一下...2020-04-25
  • Perl中的特殊内置变量详细介绍

    这篇文章主要介绍了Perl中的特殊内置变量详细介绍,需要的朋友可以参考下...2020-06-29
  • node.js 全局变量的具体使用

    这篇文章主要介绍了node.js 全局变量的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-15