正则里的.*?

?匹配0次或1次。但是?还有第二个含义,作为正则的懒惰模式。正则有两种模式,一种为贪婪模式(默认),另外一种为懒惰模式,以下为例:(abc)dfe(gh)对上面这个字符串使用(.*)将会匹配整个字符串,因为正则默认是尽可能多的匹配。虽然(abc)满足我们的表达式,但是(abc)dfe(gh)也同样满足,所以正则会匹配多的那个。如果我们只想匹配(abc)和(gh)就需要用到以下的表达式(.*?)在重复元字符*或者+后面跟一个?,作用就是在满足的条件下尽可能少匹配。

正则里的.*?

时间: 2024-10-10 13:19:45

正则里的.*?的相关文章

正则里的.*和.*?区别

\s匹配任意的空白符(包括空格,制表符(Tab),换行符,中文全角空格)\S则是任意不是空白符的字符 ?涉及到贪婪模式当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串.如果用它来搜索aabab的话,它会匹配整个字符串aabab.这被称为贪婪匹配. 有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符.前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?

浅谈 js 正则之 test 方法

原文:浅谈 js 正则之 test 方法 其实我很少用这个,所以之前一直没注意这个问题,自从落叶那厮写了个变态的测试我才去看了下这东西.先来看个东西吧. ? 1 2 3 4 5 var re = /\d/; console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1") ); console.log( re.test("1"

写正则不要再瞎转义了

在 JavaScript 中,有两个地方用到了反斜杠转义序列,一个是在字符串字面量里,一个是在正则字面量里.其中字符串字面量里的反斜杠转义序列又分为下面几种形式: 1. \ 后面跟着单引号(').双引号(").反斜杠自己(\).b.f.n.r.t.v 其中的一个 2. \ 后面跟着某个行终止符序列,常见的行终止符序列有三种:回车.换行.回车+换行 3. \ 后面跟着 0 4. \ 后面跟着 1 到 3 个八进制数字 5. \ 后面跟着 x 再跟着两个 16 进制数字 6. \ 后面跟着 u 再跟

随笔一个正则

正则匹配,一定要知道的是,它是一个字符一个字符进行匹配.这一点很重要. 匹配一个字符串$a = '12,33,4,5,6';这种一个数一个逗号的.或者就是一个数字. 知道正则的匹配规则,一个字符一个字符匹配.由于这个例子可以分组,那么开始分割,找到了分组条件是一个逗号一个数.第一个数要单拿出来. +号表示一个或者多个,*号表示0个或者多个 preg_match('/^\d+(,\d+)*$/', $a);// 注意php正则里没有g选项... 这个就可以匹配一个数字或者带有逗号的$a这种~ 正则

perl6正则 2: 字母,数字,空格和下划线

数字, 字母, 下划线 在perl6中, 如果是 数字, 字母, 下划线, 在正则里可以正接写上. > so 'perl6' ~~ /6/ True > so 'perl6_' ~~ /_/ True > 非数字, 字母, 下划线 如果不是数字.字母. 下划线, 可以用 \ 反斜线转义, 或用单.双相号包围. > '[email protected]' ~~ / name\@co / 锝ame@co锝? > '[email protected]' ~~ / name'@'c

js正则学习及一些正则集合

正则中文版详细说明请看中文版w3cschool-----http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp偶还看微软正则表达式语言-快速参考:http://msdn.microsoft.com/zh-cn/library/az24scfc%28v=vs.110%29.aspx var reg=/(123)/;            var str='abc123';            str=str.replace(reg,'***')

常用JS正则匹配函数

//校验用户名:只能输入1-30个字母 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true } //校验密码:只能输入6-20个字母.数字.下划线 function isPasswd(s) { var patrn=/^(/w){6,20}$/; if (!patrn.exec(s)) return false return true } //校验普通

js中常用正则

/校验是否全由数字组成 ? 1 2 3 4 5 6 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的

JavaScript 的正则也有单行模式了

正则表达式最早是由 Ken Thompson 于 1970 年在他改进过的 QED 编辑器里实现的,正则里最简单的元字符 “.” 在当时所匹配的就是除换行符外的任意字符: "." is a regular expression which matches any character except <nl>. 上面这句话出自 QED 在 1970 年的官方文档,这可能是史上第一份正则文档. 为什么要这么规定?是因为 QED 是以行为单位来编辑文件的,而且行尾的换行符也算在这一