不灭的焱

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

作者:php-note.com  发布于:2019-02-16 18:52  分类:Java  编辑

group()

public String group(int group)

返回在以前匹配操作期间由给定组捕获的输入子序列。

对于匹配器 m、输入序列 s 和组索引 g,表达式 m.group(g) 和 s.substring(m.start(g), m.end(g)) 是等效的。

捕获组是从 1 开始从左到右的索引。组零表示整个模式,因此表达式 m.group(0) 等效于 m.group()

如果该匹配成功了,但指定组未能匹配输入序列的任何部分,则返回 null。注意,某些组(例如,(a*))匹配空字符串。当这些的组成功匹配输入中的空字符串时,此方法将返回 空字符串

作者:php-note.com  发布于:2019-02-05 21:44  分类:编程基础/Web安全  编辑
作者:php-note.com  发布于:2019-02-04 16:31  分类:PHP基础  编辑

preg_split() 函数通过一个正则表达式分隔字符串。

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

参数说明:

  • $flags:可选,可以是任何下面标记的组合(以位或运算 | 组合):

    • PREG_SPLIT_NO_EMPTY:如果这个标记被设置, preg_split() 将进返回分隔后的非空部分。
    • PREG_SPLIT_DELIM_CAPTURE:如果这个标记设置了,用于分隔的模式中的括号表达式将被捕获并返回。
    • PREG_SPLIT_OFFSET_CAPTURE:如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量。 注意:这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串,第1个元素为该子串在subject 中的偏移量组成的数组。
作者:php-note.com  发布于:2019-02-04 16:01  分类:Java  编辑

在正则表达式外是用 $1, $2 ... 来进行 后向引用,如果是在正则表达式中就需要用 \1, \2 ... 的形式来进 后向引用

作者:php-note.com  发布于:2019-02-04 11:04  分类:Java  编辑

appendReplacement():sb是一个StringBuffer,replaceContext待替换的字符串,这个方法会把匹配到的内容替换为replaceContext,并且把从上次替换的位置到这次替换位置之间的字符串也拿到,然后,加上这次替换后的结果一起追加到StringBuffer里(假如这次替换是第一次替换,那就是只追加替换后的字符串啦)。

appendTail():sb是一个StringBuffer,这个方法是把最后一次匹配到内容之后的字符串追加到StringBuffer中。

作者:php-note.com  发布于:2019-02-03 00:27  分类:Java  编辑

在java.util.regex包中,包括了两个类:Pattern(模式类)Matcher(匹配器类)。Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。另加一个新的模式异常类:PatternSyntaxException,当遇到不合法的搜索模式时,会抛出异常。

作者:php-note.com  发布于:2019-02-02 16:00  分类:PHP基础  编辑

PREG_PATTERN_ORDER; // 默认选项。整个数组是二维数组,$arr1[0]是包括边界所构成匹配字符串的数组,$arr1[1]除去边界所构成的匹配字符串的数组;

作者:php-note.com  发布于:2019-01-26 21:30  分类:Java  编辑

Java正则表达式:

  •   (?i)abc  表示abc都忽略大小写
  •   a(?i)bc  表示bc忽略大小写
  •   a((?i)b)c  表示只有b忽略大小写

也可以用 Pattern.compile(rexp, Pattern.CASE_INSENSITIVE) 表示整体都忽略大小写

作者:php-note.com  发布于:2018-08-11 13:47  分类:Java  编辑

appendReplacement(StringBuffer sb, String replacement)

将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里,而

appendTail(StringBuffer sb) 方法则将最后一次匹配工作后剩余的字符串添加到一个StringBuffer对象里。

例如,有字符串 fatcatfatcatfat,假设既有正则表达式模式为"cat",第一次匹配后调用appendReplacement(sb, "dog"),那么这时StringBuffer sb的内容为fatdog,也就是fatcat中的cat被替换为dog并且与匹配子串前的内容加到sb里,而第二次匹配后调用 appendReplacement(sb, "dog"),那么sb的内容就变为fatdogfatdog,如果最后再调用一次 appendTail(sb),那么sb最终的内容将是 fatdogfatdogfat。

作者:php-note.com  发布于:2017-05-18 20:48  分类:Go/Python  编辑
作者:php-note.com  发布于:2014-11-22 22:03  分类:PHP基础  编辑

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基础  编辑

在编写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  分类:PHP库/系统/微信  编辑

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

作者:php-note.com  发布于:2013-12-29 18:44  分类:PHP基础  编辑

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

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

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

作者:php-note.com  发布于:2013-04-30 10:21  分类:PHP库/系统/微信  编辑

条件语句:

<!--{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  分类:PHP基础  编辑

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

三个常用的知识点:

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

懒惰限定符

代码/语法

说明

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

匹配特定数字:

^[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  分类:HTML/CSS/JS  编辑

二、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  分类:HTML/CSS/JS  编辑

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

建立正则表达式对象语法

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

flags 参数说明:

  • g (全文查找出现的所有 pattern
  • i (忽略大小写)
  • m (多行查找)
作者:php-note.com  发布于:2012-05-30 01:05  分类:PHP基础  编辑

9. 单词边界

元字符<<\b>>也是一种对位置进行匹配的“锚”。这种匹配是0长度匹配。

有4种位置被认为是“单词边界”:

1) 在字符串的第一个字符前的位置(如果字符串的第一个字符是一个“单词字符”)

2) 在字符串的最后一个字符后的位置(如果字符串的最后一个字符是一个“单词字符”)

3) 在一个“单词字符”和“非单词字符”之间,其中“非单词字符”紧跟在“单词字符”之后

4) 在一个“非单词字符”和“单词字符”之间,其中“单词字符”紧跟在“非单词字符”后面