php正则表达式提取图片地址 超链接 标题 实现代码

 更新时间:2016年11月25日 17:30  点击:1446
文章介绍了利用php正则表达式提取图片地址 超链接 标题 实现代码,有需要的朋友可参考一下。

正则表达式提取网址中的id

 代码如下 复制代码
preg_match('/http://t.sina.com.cn/(d+)/fans//',$html,$result); 正则表达式提取网址中的id
echo $result[1];


PHP的正则表达式提取图片地址的代码。

 代码如下 复制代码
$str='<p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_4.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_3.jpg" alt=""/></p><p style="padding: 0px; margin-top: 0px; margin-bottom: 0px; line-height: 200%;"><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';  $pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/";  preg_match_all($pattern,$str,$match);  print_r($match);

 

PHP正则表达式提取超链接及其标题

 

 代码如下 复制代码

$str = '<a id="top8" href="http://list.MP3.baidu.com/song/A.htm?top8" class="p14" target="_top">歌曲列表</a><br><a target="_blank" id="bp" href="http://list.mp3.baidu.com/list/bangping.html" class="p14">中文金曲榜</a><br><td nowrap="nowrap">&#8226;&nbsp;<a id="top19" href="qingyinyue.html?top19" class="p14" target="_top">轻音乐</a></td>';

利用正则表达式是最简单的,其它的办法,偶米去想。。。

$pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)</a>/i';
preg_match_all($pat, $str, $m);

输出方法:

print_r($m[2]);
print_r($m[4]);

php中的异常机制,只能算是一个舶来品,php的书中对异常机制讨论的很少,大多仅停留在语法阶段。有人盛赞php的异常是个好东西,也有人认为php的异常很不给力,也有人一直困惑在php中该不该用异常,怎么用?

    异常本身的语法并不值得讨论,异常的使用场景才是主要的,这里我对比php和java,来看看php里的异常到底是怎么回事,异常到底应该怎么用。
      看到了PPC论坛上的这篇讨论,觉得很有价值,我重新整理了下我的观点,做个总结。
      首先,需要说的是,这里的异常是指php的异常。因为php的异常和其它语言相比有着很大的不同。
      php里的异常,是程序运行中的不符合预期的情况,即一种在程序执行流程里面允许发生,只是和正常流程不同的状况。它是一种不正常的情况,就是按照我们的正常逻辑本不该出错,但仍然会出现的错误,属于逻辑和业务流程的错误,而不是语法上的错误。
    php里的错误则是一种非法的,语法或者环境问题导致的让编译器无法通过检查,甚至无法运行的情况。
    php的异常处理所做的是对你程序运行时出现的某种情况进行处理,并不是错误,异常是程序运行得到的结果不是你想要的。对于程序而言,异常是不可控的,我们无法控制运行时在哪个环节会出错,但是我们可以大致预期到哪些环节会出错,并进行针对性的补救。
    异常(exception)和错误(error)的概念以及区分在各种语言里是不一样的。在java和php里,对错误和异常的界定也是不同的。在php里,它遇到任何的自身错误都会触发一个错误,而不是抛异常(对于一些情况,会同时抛出异常和错误)。php一旦遇到非正常的代码,通常都会触发错误,而不是抛出异常。在这个意义上,如果你想使用异常来处理不可预料的问题,是办不到的。比如说,你想在文件不存在,数据库连接打不开的时候触发异常,是不可行的。这在php里是一种错误,php把它作为错误抛出,而无法作为异常自动捕获。而java则不同,java把很多行为看成是异常并且可捕获。
我们来个最直观最简单的例子吧。就以经典的除零问题为例:

 代码如下 复制代码
//exception.php
<?php
$a=null;
try{
$a=5/0;
echo $a,PHP_EOL;
}catch(exception $e){
$e->getMessage();
$a=-1;
}
echo $a;

运行结果:

下面是java代码:ExceptionTry.java

 代码如下 复制代码
//ExceptionTry.java
public class ExcepetionTry {
    public static void tp() throws ArithmeticException{
        int a;
        a=5/0;
        System.out.println("运算结果:"+a);
    }
   
    public static void main(String[] args) {
        int a;
        try {           
            a=5/0;
            System.out.println("运算结果:"+a);
        } catch (ArithmeticException e) {
            e.printStackTrace();   
        }finally{
        a = -1;
        System.out.println("运算结果:"+a);
        }
        try {
            ExcepetionTry.tp();
        } catch (Exception e) {
            System.out.println("异常被捕获");
        }
       
    }
}

运行结果:

如果我们把tp方法中的第二条语句改为如下:
a=5/1;
那么结果将是如下:

    由以上运行结果可以看到,对于除0这种“异常”代码,php认为这是一个错误,会直接触发错误(waring也是错误,只是错误等级不一样而已),而不会自动抛异常使进入异常流程,故最终$a的值并不是预想中的-1,也就是说,并没有进入异常分支,也没有处理异常。php只有你主动throw后,才能捕获异常(一般情况是这样的,也有一些异常php可以自动捕获)。
在下面三种场景下会用到异常处理机制:
    (1)对程序的悲观预测
     如果一个程序员对自己的代码带有“悲观情绪”,这里并不是指该程序员代码质量不高。他认为自己的代码无法一一处理各种可预见的不可预见的情况,那该程序员就会进行异常处理。假设一个场景,程序员悲观地认为自己的这段代码在高并发条件下可能产生死锁,那么他就会悲观地抛出异常,然后在死锁时进行捕获,对异常进行细致的处理。
    (2)程序的需要和对业务的关注
    如果程序员希望业务代码中不会充斥大堆的打印,调试等处理,通常他们会使用异常机制;或者业务上需要定义一些自己的异常,这个时候就需要自定义一个异常, 来对现实世界中各种各样的业务进行补充。比如上班迟到,这种情况,我就认为是一个异常,要收集起来,到月底集中处理,扣你工资;如果程序员希望有预见性地处理可能发生的会影响正常业务的代码,那么它需要异常。在这里,强调了异常是业务处理中必不可少的环节,不能对异常视而不见。异常机制认为,数据一致很重要,在数据一致性可能被破坏时,就需要异常机制来进行预先补救。
    举个例子,比如有个上传文件的业务需求,要把上传的文件保存在一个目录里,并在数据库里插入这个文件的记录,那么这两步就是互相关联密不可分的一个集成的业务,缺一不可。文件保存失败,而插入记录成功就会导致无法下载文件;而文件保存成功数据库写入失败,则会导致没有记录的文件成为死文件,永远得不到下载。
      那么我们假设文件保存成功后没有提示,但是保存失败会自动抛出异常,访问数据库也一样,插入成功没有提示,失败则自动抛出异常,我们就可以把这两个有可能抛出异常的代码段包在一个try语句里,然后在catch捕捉错误,在catch代码段里删除没有被记录到数据库的文件或者删除没有文件的记录,以保证业务数据的一致性。     因此,从业务这个角度讲,异常偏重于保护业务数据一致性,并且强调了对异常业务的处理。
      如果我们的代码中,只是象征性的try-catch,最后打印一个报错,over。这样的异常,不如不用,没有体现了异常的思想。所以,合理的代码应该如下:

 代码如下 复制代码
<?php
try{
//可能出错的代码段
if(文件上传不成功) throw(上传异常);
if(插入数据库不成功) throw(数据库操作异常);}catch(异常){
必须的补救措施,如删除文件,删除数据库插入记录,这个处理很细致
}
//....
?>

也可以如下:

 代码如下 复制代码
<?php
上传{
if(文件上传不成功) throw(上传异常);
if(插入数据库不成功) throw(数据库操作异常);
}
//其他代码...try{
上传;
其他;
}catch(上传异常){
必须的补救措施,如删除文件,删除数据库插入记录
}catch(其它异常){
记录log
}
?>
   

上面的两种捕获异常的方式,前一种是在异常发生时,立刻捕获;后一种是分散抛异常,集中捕获。那到底应该是哪一种呢?
   如果我们的业务很重要,那么异常越早处理越好,以保证程序在意外情况下能保持业务处理的一致性。比如一个操作有多个前提步骤,突然最后一个步骤异常了,那么其他前提操作都要消除掉才行,保证数据一致性。并且在这种核心业务下,有大量的代码来做善后工作,进行数据补救,这是一种比较悲观的异常。
  如果我们的异常不是那么重要,并且在单一入口,MVC风格的应用中,为了保持代码流程的统一,则常常采用后一种异常处理方式,这种异常处理更多强调了业务流程的走向,对善后工作并不是很关心。这是一种乐观的异常。
    (3)语言级别的健壮性要求
      在这点上,php是缺失的。以java为例,java是一种面向企业级开发的语言,强调健壮性。java中支持多线程,java认为,多线程被中断这种情况是彻彻底底的无法预料和避免的。所以 java规定,凡是用了多线程,就必须正视这种情况。你要么抛出,不管它,要么捕获,进行处理。总之,你必须面对 InterruptedException这个异常,不准回避。也就是异常发生后应对重要数据业务进行补救,当然你可以不做,但是我会告诉你,这是你应该做的。    这类异常是强制的。更多的异常是非强制的,由程序员决定的。java对异常的这种分类和约束,保证了java程序的健壮性和可信赖度。
    那么异常的意义何在?
    异常就是无法控制的运行时错误,会导致出错时中断正常逻辑运行,该异常代码后面的逻辑都不能继续运行。那么try/catch的好处就是可以把异常造成的逻辑中断破坏降到最小范围内,并且经过补救处理措施后不影响业务逻辑的完整性,乱抛异常和只抛不捕获,或捕获而不补救,会导致数据混乱。 这就是异常处理的一个重要作用,就是在我们精确控制运行时流程的时候,在程序中断的时候,有预见的用try缩小可能出错的影响范围,再及时捕获异常的发生并作出相应的补救,以使逻辑流程仍然能回到正常轨道上来。
       怎样看php的异常?
       我们已经看到了php中的异常机制是很鸡肋的,绝大多数情况下无法自动抛异常,必须用if-else来先进行判断,再手工抛出异常。这种处理方式看起来,比较像是多此一举。手动抛异常的意义就不是很大了,因为你手动抛异常也就意味着你在代码里已经充分预期到错误的出现了,也就算不得真正的“异常”了,而是意料之中的了。还是陷入了纷繁复杂的业务逻辑判断和处理中。java和C++语言做的比较好的就是定义了一堆内置的常见的异常,不需要程序员判断各种异常情况后手工抛出,编译器会代我们进行判断业务是否发生错误,自动抛出异常。作为程序员,则只需要关心异常的捕获和随后补救,而不是像php中关注到底会发生哪些异常啊,用if-else来逐一判断,逐一抛异常。
    php的异常机制很不完美,很多情况下和if-else相比没有明显的优势,这也是php的异常没有普及的原因。当然了,使用了异常也能一定程度上降低耦合性。
    那怎么来完善php原先的异常处理机制呢?这时,就要借助php的错误处理了。PHP提供了一个set_error_handler函数,可以自定义错误处理函数,能够把非致命类型的错误处理都转向到自己定义的函数里进行分析和处理。但是因为出错的地方可能很多,集中处理的话要区分的情况很复杂,所以我们只用这个特性做个跳板。在自定义函数里我们手动抛一个异常出来,杀个回马枪,让try/catch可以捕获并处理这个运行时错误所带来的中断,从而实现扩大try/catch影响范围的目的.

一款以ecshop无限分类为实例来介绍一下php中的递归函数返回值的问题介绍。

在 ecshop 二次开发中做产品分类索引时,要根据分类 id 取得所属顶级分类 id 。第一个反应就是用递归递出来,于是写了递归函数如下:

 代码如下 复制代码

function getCatTopId($cat_id)
{
    if ($cat_id)
    {
        $res = Array();
        $sql = 'SELECT cat_id, parent_id'
             . ' FROM ' . $GLOBALS['ecs']->table('category')
             . ' WHERE cat_id = ' . $cat_id . ' AND is_show = 1';

        $res = $GLOBALS['db']->getAll($sql);

        if ($res[0]['parent_id'] > 0)
        {
            getCatTopId($res[0]['parent_id']);
        }
        else
        {
            return $res[0]['cat_id'];
        }
    }
    else
    {
        return 1;
    }
}

 

一测试程序,没有得到返回值?检查了很久都没有发现错误,看来脑壳断路了。今天问水神(一好心网友)时,他帮我解答出来了,修改如下:

 代码如下 复制代码

function getCatTopId($cat_id)
{
    if ($cat_id)
    {
        $res = Array();

        $sql = 'SELECT cat_id, parent_id'
             . ' FROM ' . $GLOBALS['ecs']->table('category')
             . ' WHERE cat_id = ' . $cat_id . ' AND is_show = 1';

        $res = $GLOBALS['db']->getAll($sql);

        if ($res[0]['parent_id'] > 0)
        {
            return getCatTopId($res[0]['parent_id']); // 修改处,多写个 return ,让函数返回值
        }
        else
        {
            return $res[0]['cat_id'];
        }    }
    else
    {
        return 1;
    }
}

 

函数写在内部,就算返回了,也只是返回到内部的那个函数的位置,所以外面还有一层主函数,必须再 return 一下

在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址

变量的引用

PHP 的引用允许你用两个变量来指向同一个内容

 代码如下 复制代码
<?
$a="ABC";
$b =&$a;
echo $a;//这里输出:ABC
echo $b;//这里输出:ABC
$b="EFG";
echo $a;//这里$a的值变为EFG 所以输出EFG
echo $b;//这里输出EFG
?>


函数的传址调用
传址调用我就不多说了 下面直接给出代码

 代码如下 复制代码

function test(&$a)
{
$a=$a+100;
}
$b=1;
echo $b;//输出1
test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了
echo "<br>";
echo $b;//输出101

要注意的是,在这里test(1);的话就会出错,原因自己去想

函数的引用返回
先看代码

 代码如下 复制代码

function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}

$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2

$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6

下面解释下: 
通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别 至于原因: 这是PHP的规定
PHP规定通过$a=&test(); 方式得到的才是函数的引用返回
至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。) 这句狗屁话 害我半天没看懂

用上面的例子来解释就是
$a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b
而通过$a=&test()方式调用函数呢, 他的作用是 将return $b中的 $b变量的内存地址与$a变量的内存地址 指向了同一个地方
即产生了相当于这样的效果($a=&b;) 所以改变$a的值 也同时改变了$b的值 所以在执行了
$a=&test();
$a=5;
以后,$b的值变为了5

这里是为了让大家理解函数的引用返回才使用静态变量的,其实函数的引用返回多用在对象中

对象的引用

 代码如下 复制代码

<?
class a{
var $abc="ABC";
}
$b=new a;
$c=$b;
echo $b->abc;//这里输出ABC
echo $c->abc;//这里输出ABC
$b->abc="DEF";
echo $c->abc;//这里输出DEF
?>

以上代码是在PHP5中的运行效果
在PHP5中 对象的复制 是通过引用来实现的。上列中$b=new a; $c=$b; 其实等效于$b=new a; $c=&$b;
PHP5中默认就是通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone.

引用的作用
如果程序 比较大,引用同一个对象的变量比较多,并且希望用完该对象后手工清除它,个人建议用 "&" 方式,然后用$var=null的方式清除. 其它时候还是用php5的默认方式吧. 另外, php5中对于大数组的传递,建议用 "&" 方式, 毕竟节省内存空间使用。


取消引用
当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。例如:

 代码如下 复制代码

<?php
$a = 1;
$b =& $a;
unset ($a);
?>

不会 unset $b,只是 $a。


global 引用
当用 global $var 声明一个变量时实际上建立了一个到全局变量的引用。也就是说和这样做是相同的:

 代码如下 复制代码
<?php
$var =& $GLOBALS["var"];
?>

这意味着,例如,unset $var 不会 unset 全局变量。

$this
在一个对象的方法中,$this 永远是调用它的对象的引用。


//下面再来个小插曲
php中对于地址的指向(类似指针)功能 不是由用户自己来实现的,是由Zend 核心实现的,php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的。

通俗的讲
1:如果有下面的代码

$a="ABC";
$b=$a;

其实此时 $a与$b都是指向同一内存地址 而并不是$a与$b占用不同的内存

2:如果在上面的代码基础上再加上如下代码

$a="EFG";

由于$a与$b所指向的内存的数据 要重新写一次了,此时Zend核心会自动判断 自动为$b生成一个$a的数据拷贝,重新申请一块内存进行存储

这是一段可支持输出树状图的php无限分类实现代码,转自其它网站有需要了解的朋友可参考一下哦,数据库结构我们只要id,parentid,name这三个字段就可以了,大家可自行创建。

数据库结构我们只要

无平台限制
只需要告知id,parentid,name 即可

下面是php代码,需要php环境支持

 代码如下 复制代码

<?php
/**
* 通用的树型类,可以生成任何树型结构
*/
class tree
{
 /**
 * 生成树型结构所需要的2维数组
 * @var array
 */
 var $arr = array();

 /**
 * 生成树型结构所需修饰符号,可以换成图片
 * @var array
 */
 var $icon = array('│','├','└');

 /**
 * @access private
 */
 var $ret = '';

 /**
 * 构造函数,初始化类
 * @param array 2维数组,例如:
 * array(
 *      1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),
 *      2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),
 *      3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),
 *      4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),
 *      5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三'),
 *      6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),
 *      7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二')
 *      )
 */
 function tree($arr=array())
 {
       $this->arr = $arr;
    $this->ret = '';
    return is_array($arr);
 }

    /**
 * 得到父级数组
 * @param int
 * @return array
 */
 function get_parent($myid)
 {
  $newarr = array();
  if(!isset($this->arr[$myid])) return false;
  $pid = $this->arr[$myid]['parentid'];
  $pid = $this->arr[$pid]['parentid'];
  if(is_array($this->arr))
  {
   foreach($this->arr as $id => $a)
   {
    if($a['parentid'] == $pid) $newarr[$id] = $a;
   }
  }
  return $newarr;
 }

    /**
 * 得到子级数组
 * @param int
 * @return array
 */
 function get_child($myid)
 {
  $a = $newarr = array();
  if(is_array($this->arr))
  {
   foreach($this->arr as $id => $a)
   {
    if($a['parentid'] == $myid) $newarr[$id] = $a;
   }
  }
  return $newarr ? $newarr : false;
 }

    /**
 * 得到当前位置数组
 * @param int
 * @return array
 */
 function get_pos($myid,&$newarr)
 {
  $a = array();
  if(!isset($this->arr[$myid])) return false;
        $newarr[] = $this->arr[$myid];
  $pid = $this->arr[$myid]['parentid'];
  if(isset($this->arr[$pid]))
  {
      $this->get_pos($pid,$newarr);
  }
  if(is_array($newarr))
  {
   krsort($newarr);
   foreach($newarr as $v)
   {
    $a[$v['id']] = $v;
   }
  }
  return $a;
 }


 /**
  * -------------------------------------
  *  得到树型结构
  * -------------------------------------
  * @author  Midnight(杨云洲),  yangyunzhou@foxmail.com
  * @param $myid 表示获得这个ID下的所有子级
  * @param $str 生成树形结构基本代码, 例如: "<option value=$id $select>$spacer$name</option>"
  * @param $sid 被选中的ID, 比如在做树形下拉框的时候需要用到
  * @param $adds
  * @param $str_group
  * @return unknown_type
  */
 function get_tree($myid, $str, $sid = 0, $adds = '', $str_group = '')
 {
  $number=1;
  $child = $this->get_child($myid);
  if(is_array($child))
  {
      $total = sqlserver/42852.htm target=_blank >count($child);
   foreach($child as $id=>$a)
   {
    $j=$k='';
    if($number==$total)
    {
     $j .= $this->icon[2];
    }
    else
    {
     $j .= $this->icon[1];
     $k = $adds ? $this->icon[0] : '';
    }
    $spacer = $adds ? $adds.$j : '';
    $selected = $id==$sid ? 'selected' : '';
    @extract($a);
    $parentid == 0 && $str_group ? eval("$nstr = "$str_group";") : eval("$nstr = "$str";");
    $this->ret .= $nstr;
    $this->get_tree($id, $str, $sid, $adds.$k.'&nbsp;',$str_group);
    $number++;
   }
  }
  return $this->ret;
 }
    /**
 * 同上一方法类似,但允许多选
 */
 function get_tree_multi($myid, $str, $sid = 0, $adds = '')
 {
  $number=1;
  $child = $this->get_child($myid);
  if(is_array($child))
  {
      $total = count($child);
   foreach($child as $id=>$a)
   {
    $j=$k='';
    if($number==$total)
    {
     $j .= $this->icon[2];
    }
    else
    {
     $j .= $this->icon[1];
     $k = $adds ? $this->icon[0] : '';
    }
    $spacer = $adds ? $adds.$j : '';

    $selected = $this->have($sid,$id) ? 'selected' : '';
    //echo $sid.'=>'.$id.' : '.$selected.' . <br/>';
    @extract($a);
    eval("$nstr = "$str";");
    $this->ret .= $nstr;
    $this->get_tree_multi($id, $str, $sid, $adds.$k.'&nbsp;');
    $number++;
   }
  }
  return $this->ret;
 }

 function have($list,$item){
  return(strpos(',,'.$list.',',','.$item.','));
 }
}
?>

效果就是

 代码如下 复制代码
aa
  bbb
  ccc

这样哦,可实现无限级分类哦,

[!--infotagslink--]

相关文章

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

    取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
  • 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
  • 常用C#正则表达式汇总介绍

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

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

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
  • 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
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • js用正则表达式筛选年月日的实例方法

    在本篇文章里小编给大家整理的是一篇关于js用正则表达式筛选年月日的实例方法,对此有兴趣的朋友们可以学习下。...2021-01-04
  • javascript 手机号码正则表达式验证函数 <font color=red>原创</font>

    随着手机号码段的不断增加,以前网上的手机号码验证函数都不能那么完美的支持了,这里脚本之家编辑特为大家准备的一个简单的正则与手机验证的函数分析。...2021-05-07