2016-05-06 浩阳
content {:toc} 由正则表达式如何匹配相同字符出发,讲讲正则表达式中的选择、分组和引用。 问题 在外刊君读者群中看到有人提出这样的一个需求: 把字符串切成连续相同字符的正则怎么写?比如abbcccdddd切成a,bb,ccc,dddd 之前我对正则表达式也是略有研究,想尝试一下。其实我对正则表达式的学习基本完全来源于犀牛书的第10章,真正看懂这一章,我觉得操作正则表达式应该不在话下。 继续阅读 »
2017-02-27 zzyhappyzzy
一直感觉正则表达式很神奇,非常强大,但并没有系统学习过,今天抽空过一遍,希望能够彻底掌握它 more 简介 正则表达式在处理文本信息时非常有用,不限于代码、日志文件、文档等。在开始学习正则之前,需要有这种概念:任何文本都是由单个字符组成。 继续阅读 »
2015-08-01 Lim Geng
分组 非捕获分组 在正则表达式中遇到小括号就可以认为是一个分组,比如/(a)bcda\1/,(a)就是一个分组,\1代表第一个分组。这种分组可以成为 捕获分组。 var reg = /(a)bcd\1/ console.log(reg.test('abcdef')) // false console.log(reg.test('abcdaef')) // true \1是个占位符,意思是这里的内容匹配的和第一个分组的一样,比如/(xyz)bcd\1/实际上就等同于/(xyz)bcdxyz/, 与其相对的就是非捕获分组,比如/(?:a)bcda/,(?:a)就是非捕获分组,不能通过\1引用 var reg = /(?:a 继续阅读 »
2014-03-19 W.Y.
本文讨论何时以及如何使用正则表达式全局匹配(/g),以及使用全局匹配可能会遇到的一些坑。 什么是全局匹配 有时候你可能期望重复匹配目标字符串多次,那么你就会创建一个全局匹配的正则表达式(通过正则表达式字面量 /.../g 或创建 new RegExp(..., 'g') 对象),这样正则表达式的 global 属性将会是 true,并且会导致一些行为的不同,下面会具体介绍。 javascript var regex = /x/g; regex.global // true 全局的正则表达式的另一个属性 lastIndex 表示上一次匹配文本之后的第一个字符的位置,上次匹配的结果是由方法 RegExp.prototyp 继续阅读 »
2017-03-28 林长宇
正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 这里有一些可能会遇到的正则表达式示例: 继续阅读 »
2017-05-16 Lanffy
元字符 元字符安(Meta-Characters)是正则表达式中具有特殊意义的专用字符,常用的元字符如下表: 元字符|含义 ---|--- .|匹配除换行符的任意字符 \w|匹配字母或数据或下划线或汉字 \s|匹配任意空白字符 \d|匹配数字 \b|匹配单词的开始或结束 ^|匹配字符串的开始 $|匹配字符串的结束 -|表示范围 []|匹配括号中的任意一个字符 *|量词,表示重复零次或多次 +|量词,表示重复一次或多次 ?|量词,表示出现一次或零次 {n}|量词,表示重复n次 {n,}|量词,表示重复n次或n次以上 {n,m}|量词,表示重复n到m次 继续阅读 »
2009-09-02 Klaus Ma
各个语言的正则表达式使用,在这些记录一下: Javascript Javascript的正则函数好像是最简单的了,也可能是因为本身就是一种弱类型的语言:看一下使用吧: var pattern = /test$/; pattern.match("test"); // 这个会匹配全串,返回true or false; pattern.exec("test"); //这个呢则会查找每个匹配的部分,返回值是匹配的字符串 继续阅读 »
2016-06-08 浩阳
content {:toc} 记录一下阅读蝴蝶书的笔记,本篇为书中以下章节的笔记:继承、数组和正则表达式。 继承 继承的两大好处:代码重用,引入一套类型系统的规范。 伪类 JavaScript 通过构造器函数产生对象。 继续阅读 »
2007-06-07 Jamling
js
原理:基于自定义的标签; 实现:目前只有文本框和密码域的验证 more js /*************************自定义的模式匹配函数 *********rule:匹配规则 *********vaule:匹配对象(表单元素的值) *********warning:警告内容 *********note:显示警告的DIV层 ************************************************/ function myReg(rule, value, warning, note) { var reg = new RegExp(rule); var noteDiv = documen 继续阅读 »
2016-08-02 ruki
tbox里面针对三个正则库(pcre/pcre2/posix)进行了封装,实现接口统一和跨平台处理,只要xmake在编译配置的时候自动检测到其中一种库,就可以使用了,一般会优先使用pcre2。 如果你不想过多的依赖第三方库,可以切换到posix的正则,调用 xmake f --pcre=false --pcre2=false 把pcre的库禁用了就行了。 首先给个最简单的匹配单个子串的例子: ```c // 执行简单匹配,第二个参数是匹配模式,默认传0就行了 tb_vector_ref_t results = tb_regex_match_done_simple("(\w+)\s+?(\w+)", 0, "he 继续阅读 »