彻底领悟javascript中的exec与match方法 阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code: var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/g;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern);What is outCome_…
match 和 exec 主要有两点不同: 1.exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: var re=new RegExp(/\d/); re.exec( "abc4def" ); 或者使用perl风格: /\d/.exec( "abc4def" ); match才是字符串类提供的方法,它的参数是正则表达式对象,如下用法是正确的: "abc4def".match(\d); 或者 "abc4def&…
1.g标志    g标志一般是与match和exec来连用,否则g标志没有太大的意义. 先来看一个带g标志的例子: var str = "tankZHang (231144) tank ying (155445)"; var res = str.match(/tank/); //没有加/g console.log(res); //返回一个数组,数组有三个成员,一个是匹配的对象.在一个index:0(匹配到的位置)和input(原字符串) ["tank", index…
(1)((2))(3)   $1  是第一个括号 $2  是第二个括号 $3  是第二个括号中的括号 $4  是第三个括号     http://www.jb51.net/article/28007.htm   http://www.jb51.net/article/46378.htm   正则表达式具有如下属性 正则表达式会记录下一次开始执行时索引位置   [1]str.match(reg)   返回所有匹配的结果数组(g情况也包括) 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为…
这是一道广为引用的面试题:var someText="web2.0 .net2.0"; var pattern=/(\w+)(\d)\.(\d)/g; var outCome_exec=pattern.exec(someText); var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc[1]? Choice A: true Choice B: false Choice C:…
match是字符串方法,写法为:str.match(reg) exec是正则表达式方法,写法为:reg.exec(str) match和exec在匹配成功时返回的都是数组,在没有匹配上时返回的都是null,故在没有深入了解两者的使用规则前,会误以为两者的使用效果是一样的,下面在几种情况中对match和exec进行区分. 1.全局匹配: 当不使用全局匹配时,两者的匹配效果是一样的,仅返回第一次匹配成功的结果: var s = "aaa bbb ccc"; var reg = /\b\w+…
#正则表达式之 match以及分组 import re #无分组 origin = "hello alex bcd alex lge alex avd 19" r = re.match ("h\w+",origin) print(r.group()) #获取匹配到的所有结果 print(r.groups()) #获取模型中匹配到的分组结果 print(r.groupdict()) #获取模型中匹配的分组结果 hello () {} #有分组 #为何要有分组? 提取匹…
一直以来,对正则表达式都是非常的恐惧的,以至于学习接口自动化时,到了正则,我就想放弃,于是乎,我将近有一个多月没有继续学习.某天睡醒,阳光正好,摊在床上冥想,我不能被眼前的坎挡住了我前进的路呀,说干就干,打开电脑,开始进入学习状态,花了一个小时,慢慢的看,心态放平,一点一点的积累,一遍遍的练习,坚持下去,会有好结果的. 回到正题,今天主要是分享正则表达式的match方法,话不多说,看代码: import re '''正则表达式:相当于一个模子,可以拿模子把符合的内容全部找出来步骤:1.创建一个正…
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对象或字符串文字. rgExp 必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可用标志的变量名或字符串文字. 其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项. 例子1: functi…
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对象或字符串文字. rgExp 必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可用标志的变量名或字符串文字. 其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项. 例子1: functi…
语法: exec() : RegExpObject.exec(string) match() : stringObject.match(string) stringObject.match(regexp)   知识点: exec() 是RegExp对象的方法,而 match()  是String对象的方法. 都会返回包含第一个匹配项信息的数组:或者在没有匹配项的情况下返回null. 返回的数组虽然是Array 的实例,但包含两个额外的属性:index 和 input.其中,index 表示匹配项…
match() 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) stringObj 必选项.对其进行查找的 String 对象或字符串文字. rgExp 必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可用标志的变量名或字符串文字. 其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项. //stringObj.mat…
1.正则表达式test方法 test() 方法用于检测一个字符串是否匹配某个模式 返回值: 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false. 2.正则表达式exec方法 exec() 方法用于检索字符串中的正则表达式的匹配. 返回值:返回一个数组,其中存放匹配的结果.如果未找到匹配,则返回值为 null. 3.字符串search方法 search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串. 返回值…
match 方法 使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回. stringObj.match(rgExp) 参数 stringObj 必选项.对其进行查找的 String 对象或字符串文字. rgExp 必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可用标志的变量名或字符串文字. 其余说明与exec一样,不同的是如果match的表达式匹配了全局标记g将出现所有匹配项,而不用循环,但所有匹配中不会包含子匹配项. 例子1: functi…
正则表达式可以看做一种有特定功能的小型编程语言,在一段文本中定位子字符串.利用正则表达式可以快速地分析大量的文本以找到特定的字符模式:提取.编辑.替换或删除文本子字符串:或将提取的字符串添加到集合.正则表达式的基本语法可参见:深入浅出之正则表达式(一),深入浅出之正则表达式(二). C#命名空间System.Text.RegularExpressions提供了支持正则表达式操作的类.这些类主要包括Regex,MatchCollection,Match,GroupCollection,Group,…
1. 来源分别为: string.match(reg) 和 RegExp.exec(str): 2. 区别 >  现有 字符串s1 和 正则对象 r1.     目标: 抽出s1中的所有电话号码 var s1 = "爱是方法发生说法是否18324569078放弃而且我15656783456时光是大法官17699098765"; {}\d{})+/g; >  string.match(reg) 方法参数为reg对象 1. 当reg为全局表达式 //g 时: 返回所有的匹配结果…
match 方法 使用正則表達式模式對字元串執行查找,並將包含查找的結果作為數組返回. stringObj.match(rgExp) 參數 stringObj 必選項.對其進行查找的 String 對象或字元串文字. rgExp 必選項.為包含正則表達式模式和可用標誌的正則表達式對象.也可以是包含正則表達式模式和可用標誌的變數名或字元串文字. 其餘說明與exec一樣,不同的是如果match的表達式匹配了全局標記g將出現所有匹配項,而不用循環,但所有匹配中不會包含子匹配項. 例子1: functi…
1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, string, flags=0) 函数参数说明: pattern   匹配的正则表达式 string      要匹配的字符串 flgs         标志位,用于控制正则表达式的匹配方式 我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式. group(num=0)…
#coding:utf-8 import re #匹配内容:单词+空格+单词+任意字符 #\w 单词字符[A-Za-z0-9_] #(?P<name>...) 分组,除了原有的编号外在指定一个额外的别名 # * 匹配前一个字符0或无限次 m=re.match(r'(\w+) (\w+)(?P<sign>.*)','whoami ufo') #string: 匹配时使用的文本. print 'm.string :',m.string #re: 匹配时使用的Pattern对象 prin…
在才开始学习正则表达式处理时,老猿对正则表达式:re.match(r"(-)+", "a1b2c3") 返回的匹配结果为"c3"没有理解,学习了贪婪模式的处理之后才明白,因为"+"的匹配是贪婪的,在匹配到结果后并不会停止,会继续匹配,直到匹配不到时再回退到上一个匹配位置作为匹配结果,因此"a1b2c3")匹配(-)时,先后匹配到"a1"."b2"."c3&q…
@"\b(\S+)://(\S+)\b"; //匹配URL的模式foreach (Match match in mc){ Console.WriteLine(match.Value);}Console.ReadLine(); 结果: @"\b(?<protocol>\S+)://(?<address>\S+)\b"; //匹配URL的模式,并分组MatchCollection mc = Regex.Matches(text, pattern)…
使用exec返回数组 var pattern=/^[a-z]+\s[0-9]{4}$/; var str='google 2012'; alert(pattern.exec(str)); //返回一个包含字符串的数组 var pattern=/^[a-z]+/; //只匹配到字母 var str='google 2012'; alert(pattern.exec(str)); //只返回google的字符串数组 var pattern=/^([a-z]+)\s([0-9]{4})$/; //使用…
match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none 例如: 1 2 3 4 5 6 7 8 9 10 11 #! /usr/bin/env python # -*- coding=utf-8 -*-    import re  …
这个正则 ($&) 的语法: https://msdn.microsoft.com/library/3k9c4a32(v=vs.94).aspx 在ECMAScript中对这几个的说明: math: ECMAScript中  String.prototype.match(regexp) 是字符串原型对象的属性. exec: ECMAScript中 RegExp.prototype.exec(string) 是正则表达式原型对象的属性. test: ECMAScript中 RegExp.proto…
题目17:Read the following javascript code: var someText="web2.0 .net2.0";var pattern=/(\w+)(\d)\.(\d)/g;var outCome_exec=pattern.exec(someText);var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc[1]? Choice A: true C…
话说,关于正则表达式有一个梗,大意是: 假如你有一个问题,想用正则来解决,于是你就有了两个问题 这句话侧面反映了精通正则是一件不容易的事.比如我今天遇到的诡异事件. 情景回放 这两天练手写了一个爬用户在博客园所有文章阅读量的简单爬虫.可以输出某用户的随笔总阅读量.如在命令行输入: node index imgss 得到总阅读量是3602. 地址在readcounter; 其中有这么一段代码: var re = /阅读\((\d+)\)/g; while(true) { if(!re.exec(h…
阅读本文之前,请先看下面一道题: 题目17:Read the following javascript code:  var someText="web2.0 .net2.0"; var pattern=/(\w+)(\d)\.(\d)/g; var outCome_exec=pattern.exec(someText); var outCome_matc=someText.match(pattern); What is outCome_exec[1] and outCome_matc…
exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: var re=new RegExp(/\d/); re.exec( "abc4def" ); //或者使用perl风格: /\d/.exec( "abc4def" ); //match才是字符串类提供的方法,它的参数是正则表达式对象,如下用法是正确的: "abc4def".match(\d); exec和match返回的都是数组 如果执行exec方法的正则表达式没有分…
string.match(RegExp) 与 RegExp.exec(string) 相同点与不同点对比解析: 1. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null. 2. 当RegExp的global属性为false时,这两个方法的返回数组是一样的. 数组的第0个元素是整个str的第一个匹配字符串,接下来的元素是str第一个匹配中的子匹配字符串. 此外,数组还有index和input两个额外属性,index是匹配字符串的起始位置,input是整个输入字符串. 此时,RegExp…
正则表达式用来处理字符串特别好用,在JavaScript中能用到正则表达式的地方有很多,本文对正则表达式基础知识和Javascript中正则表达式的使用做一个总结. 第一部分简单列举了正则表达式在JavaScript中的使用场景:第二部分详细介绍正则表达式的基础知识,写出一些例子方便理解. 本文的内容是我自己看完正则表达式写法,和犀牛书中js正则表达式的章节后的总结,所以内容可能会有疏漏和不严谨的地方.若有大神路过发现文中错误的地方,欢迎斧正! Javascript中正则表达式的使用 一个正则表…