简单的php数字正则表达式

 更新时间:2016年11月25日 17:41  点击:1535
数字正则比字母来看是相对来说比较容易的了,下文小编给各位整理了几段数字正则表达式了,有兴起的可以进入 来看看。

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

$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+))$

字符替换对于学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 作为正则表达式必须关注的,也要提示一下

网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的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(第四到第五个字符)

JGsoft RegexBuddy 是一款正则表达式工具。容易创建完全符合你的要求的正则表达式。清楚地理解其他人写的复杂的正则表达式。通过示例字符串和文件,快速测试任意正则表达式,防止在处理真实数据时发生错误。

RegexBuddy是一款正则表达式编辑工具,帮助你的编写需要的正则表达式,还可以使用它理解别人编写的表达式。RegexBuddy提供可视化的支持、提示、调试方面的便利;在使用正则表达式时,RegexBuddy将正则式转换为多种语言的字串,还提供了代码输出功能。

RegexBuddy是学习正则表达式时的比较好的帮手,它可以容易地建立你想要的正确的正则表达式。清晰地推断他人所写的复杂的正则表达式。它还可以用给出的实例字符串或文件快速地进行测试匹配,从而防止了在实际应用中出现错误。RegexBuddy会在你的源代码中根据你所应用的特殊编程语言,自动生成带有正则表达式的代码段。同时你也可以收集正则表达式到库中,以在未来重新使用。

比如我们在网页中抓取一段文本,比较凌乱,我们需要从中抓取需要下载的地址,简简单单几句就可以抓取到其中内容。

推荐:正则表达式编写神器 -- JGsoft RegexBuddy

推荐:正则表达式编写神器 -- JGsoft RegexBuddy

官网地址:http://www.regexbuddy.com/

[!--infotagslink--]

相关文章

  • PHP正则表达式取双引号内的内容

    取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
  • 一个关于JS正则匹配的踩坑记录

    这篇文章主要给大家介绍了一个关于JS正则匹配的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-13
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • php 验证只能输入汉字、英语、数字的正则表达式

    正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • PHP正则表达式匹配验证提取网址URL实例总结

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

    这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • JS中使用正则表达式g模式和非g模式的区别

    这篇文章给大家详细介绍了JS中使用正则表达式g模式和非g模式的区别,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2017-04-03
  • JavaScript利用正则表达式替换字符串中的内容

    本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
  • C#正则表达式使用方法示例

    这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
  • JS基于正则截取替换特定字符之间字符串操作示例

    这篇文章主要介绍了JS基于正则截取替换特定字符之间字符串操作方法,结合具体实例形式分析了JS基于正则实现针对特殊字符、数字等字符串类型的截取操作相关技巧,需要的朋友可以参考下...2017-02-08
  • 常用C#正则表达式汇总介绍

    c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
  • 一文秒懂python正则表达式常用函数

    这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • Idea使用正则表达式批量替换字符串的方法

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
  • js正则学习小记之匹配字符串字面量

    关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配,因为我想学完之后写个语法高亮练手,所以用js代码当作例子...2021-05-07
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • C# 中使用正则表达式匹配字符的含义

    正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
  • Python验证的50个常见正则表达式

    这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
  • C#编程自学之运算符和表达式

    这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25