刚开始接触正则,发现了一件有意思的事,我想要匹配正则,这下尴尬了- -,光知道正则表达式写法,并不知道正则如何才能获取匹配值。

慢慢摸索中。。。

找到答案!!!

正则匹配有两种方法:

一种是match方法: | 字符串.正则表达式 |,接收正则表达式匹配字符串

一种是exec方法,| 正则表达式.字符串 |,接收字符串匹配正则表达式

这两种方法都返回与之相匹配的值,而他们唯一的区别只是获取值的类型不相同

在W3C上给出这样一则提示(区别)

重要事项:如果在一个字符串中完成了一次模式匹配之后要开始检索新的字符串,就必须手动地把 lastIndex 属性重置为 0。

提示:请注意,无论 rxp 是否是全局模式,exec() 都会把完整的细节添加到它返回的数组中。这就是 exec() 与 String.match() 的不同之处,后者在全局模式下返回的信息要少得多。因此我们可以这么说,在循环中反复地调用 exec() 方法是唯一一种获得全局模式的完整模式匹配信息的方法。

进行测试:

var str = 'ai name sai';

var rxp = new RegExp('[^\x20]+', 'g');

使用match方法进行匹配。

str.match(rxp);   // result: Array(3) [ "ai", "name", "sai" ]

使用exec方法进行匹配。

rxp.exec(str) ;  // Array [ "ai" ]

rxp.exec(str) ;  // Array [ "name" ]

rxp.exec(str) ;  // Array [ "sai" ]

rxp.exec(str) ;  // null

rxp.exec(str) ;  // Array [ "ai" ]

......

exec其他图自行脑补。

测试中可以得出结论:

1. match可以获取所有匹配的值,exec每次只获取第一个匹配的值

2. match获取的属性值较少,exec获取的属性值相对完整许多

完成 ^_^

转载于:https://www.cnblogs.com/fuyuer/p/9229569.html

正则表达式之——exec,match相关推荐

  1. python compile正则_Python 正则表达式:compile,match

    本文以匹配×××ID为例,介绍re模块的compile与match的用法 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.match(要匹配的字符串): 从字符串开 ...

  2. nodejs正则提取html,Nodejs正则表达式函数之match、test、exec、search、split、replace

    1. Match函数正则表达式 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串数组 原型:stringObj.match(regExp)函数 参数:spa stringOb ...

  3. Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解

    1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹 ...

  4. javascript正则表达式总结(test|match|search|replace|split|exec)

    test:测试string是否包含有匹配结果,包含返回true,不包含返回false. <script type="text/javascript"> var str ...

  5. match 和 search 和 indexOf 查找及 正则表达式的 exec 和 test 用法

    function test(){var name= "1.087"; var abc = "abd wor66k ne78xt";var reg = /\d+/ ...

  6. 详解正则表达式匹配方法 match()

    match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是  match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表达式.该方法绝大多 ...

  7. 匹配正则_Day233:正则表达式匹配方法 match()

    match()语法 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表 ...

  8. [转]正则表达式中re.match、re.search、re.findall的用法和区别

    re.match 用法 re.match语法:re.match(pattern,string,flags=0) pattern:表示正则表达式 string:要匹配的字符 flags:控制匹配的方式 ...

  9. 用正则表达式匹配(match)正整数

    我们可以使用正则表达式来代表一些我们希望的字符串类型,比如正整数,我们就可以使用 pat = r'^ [1-9]\d*′这个模式来表示.也就是符合这个表达式的字符串,他就是一个正整数.这样就通过正则表 ...

最新文章

  1. ESP32 SDK OTA Demo升级流程
  2. [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
  3. PyTorch深度学习实践06
  4. 如何设置多级标题_办公技巧|标题样式amp;多级列表结合,再也不用手动修改1.1、1.2 ...!...
  5. linux查看执行过的命令行,在Linux命令终端中查看和编辑曾执行过的命令 – LINUX笔记 – CFEI.NET...
  6. Android 4.1新增功能特性
  7. wpf 将Style应用到 ListView 中的 ListViewItem 元素
  8. LAMP网站架构简介
  9. javascript日期格式化 转换
  10. 解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题
  11. Define a New Server 没有tomcat选项
  12. Python打包成exe,pyc
  13. .NET基础知识(一)
  14. Ubuntu中安装gcc
  15. 《东周列国志》第三十三回 宋公伐齐纳子昭 楚人伏兵劫盟主
  16. ADO.NET 概述
  17. 高分子专业计算机建模,高分子与计算机模拟.doc
  18. 复习vue+前后端分离开发
  19. 控制贺尔碧格PRL及PIL模块式RT-PVR6系列比例放大器
  20. win2008R2 不能访问局域网共享\局域网共享中无本机,解决办法

热门文章

  1. 白话Elasticsearch05- 结构化搜索之使用range query来进行范围过滤
  2. 实现dmx512_LED灯具DMX512信号与普通TTL信号区别
  3. 判断均匀平面波的极化形式_测瑞通|怎样判断电波暗室的性能?
  4. .net core发布 正在发现数据上下文_使用EF Core实现数据库读写分离
  5. 爬虫学习笔记(八)—— Scrapy框架(三):CrawSpider模板
  6. gdb 版本和gcc版本的对应关系_GNU发布GDB新版本 10.1和 mtools 4.0.25
  7. python创建列表_python创建与遍历List二维列表的方法
  8. java数据类型_JAVA的数据类型
  9. 硕士本科论文通过matlab出仿真图
  10. tf.ConfigProto()详解