不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2017-05-18 20:48  分类:正则表达式 
作者:php-note.com  发布于:2014-11-22 22:03  分类:正则表达式 

preg_match_all()

preg_match_all() 函数用于进行正则表达式全局匹配,成功返回整个模式匹配的次数(可能为零),如果出错返回 FALSE 。

语法:

int preg_match_all( string pattern, string subject, array matches [, int flags ] ) 
作者:php-note.com  发布于:2014-09-19 13:55  分类:正则表达式 

在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换)。

详情介绍参考博文:PHP函数preg_replace() 正则替换所有符合条件的字符串 

后来,发现一个更专业级的 正则替换回调函数 preg_replace_callback()

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )

本函数的行为几乎和 preg_replace() 一样,除了不是提供一个 replacement 参数,而是指定一个 callback 函数。该函数将以目标字符串中的匹配数组作为输入参数,并返回用于替换的字符串。

回调函数 callback:

一个回调函数,在每次需要替换时调用,调用时函数得到的参数是从subject 中匹配到的结果。回调函数返回真正参与替换的字符串。这是该回调函数的签名:

string handler ( array $matches )

像上面所看到的,回调函数通常只有一个参数,且是数组类型。

作者:php-note.com  发布于:2014-01-06 14:35  分类:正则表达式 

由于工作的需要,用到了开源微博系统 ThinkSNS3.X ,它采用的是 ThinkPHP2.X 框架,当然也做了些修改,在二次开发过程中,感觉 ThinkSNS 的模板语法还是偏复杂,不够精简,最好能精简到连 美工/前端工程师 一眼就能看懂是怎么回事的程度,于是想到了Discuz模板语法,觉得它的语法是我想要的。按照它的语法思路自己写了个模板引擎,同时又不能对 ThinkSNS 自带的模板引擎产生干扰,即要做好兼容工作。

作者:php-note.com  发布于:2013-12-29 18:44  分类:正则表达式 

PHP preg_replace() 正则替换,与JavaScript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹配条件的元素

preg_replace (正则表达式, 替换成, 字符串, 最大替换次数【默认-1,无数次】, 替换次数)

大部分语言的正则表达式都是差不多的,不过也有细微的差异。

作者:php-note.com  发布于:2013-04-30 10:21  分类:正则表达式 

条件语句:

<!--{if $op == 'syn' || $op == 'find' || $op == 'search' || $op == 'group' || $op == 'request'}-->
这是判断语句
<!--{elseif $op == 'find'}-->
这是elseif的应用
<!--{else}-->
这是else应用语句
<!--{/if}-->

循环语句:

<!--{loop $array $a_key $a_val}-->
这是循环语句
<!--{/loop}-->

 

作者:php-note.com  发布于:2013-04-30 01:08  分类:正则表达式 

正则表达式30分钟入门教程

三个常用的知识点:

1.惰性匹配:正则引擎默认是贪婪的,若要最少重复的话,需要用到惰性匹配符 “?

懒惰限定符

代码/语法

说明

*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
作者:php-note.com  发布于:2012-07-12 19:44  分类:正则表达式 

匹配特定数字:

^[1-9]\d*$    //匹配正整数

^-[1-9]\d*$   //匹配负整数

^-?[1-9]\d*$   //匹配整数

^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)

评注:处理大量数据时有用,具体应用时注意修正


作者:php-note.com  发布于:2012-06-09 11:23  分类:正则表达式 

二、JavaScript中正则表达式函数详解(exec, test, match, replace, search, split)

1、使用正则表达式的方法去匹配查找字符串

1.1. exec方法详解

exec方法的返回值

exec方法返回的其实并不是匹配结果字符串,而是一个对象,简单地修改一下execReg函数,来做一个实验就可以印证这一点:

function  execReg(reg, str) {
	var result = reg.exec(str);
	alert(typeof result);
}

var reg = /b/;
var str = 'bbs.bblueidea.com';
execReg(reg,str);

作者:php-note.com  发布于:2012-06-09 11:19  分类:正则表达式 

JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望对于大家学习JavaScript正则表达式有一定的帮助。

建立正则表达式对象语法

re = new RegExp(/pattern/[flags])

flags 参数说明:

  • g (全文查找出现的所有 pattern
  • i (忽略大小写)
  • m (多行查找)