首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则exec跟match区别

来来来,本文给你一个清晰思路~!...一、 exec match分别是谁家方法 exec是RegExp类方法 match是String类方法 分清楚是各是哪里方法之后,就知道怎么使用了 栗子: /hello/.exec('hello...match 是否返回所有匹配数组跟正则表达式是否带着g有关系 const str = 'd3aish hello world d5aisy'; const reg = /\dai/...match跟g有关,这里没有全局匹配,所以只有 // 一个,而下面这个本来就只返回第一个匹配字符串跟它分组引用,这里没有分组引用,所以 // 也只返回了一个匹配字段 接下来看看有g情况下 const...'3ai'],结果符合预期 那什么情况下match结果会跟exec一样呢,对正则要求是 不带g呗~ 还是举个栗子 const str = 'version2.1 version2.0'; const

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js爬虫,正则

    大概看了下,是js加载,而且数据在js函数中,很有意思,就分享出来给大家一起看看! 抓取目标 ?...今天我们目标是上图红框部分,首先我们确定这部分内容不在网页源代码中,属于js加载部分,点击翻页后也没有json数据传输! ?...但是发现有个js请求,点击请求,是一行js函数代码,我们将其复制到json视图查看器中,然后格式化一下,看看结果 ? ?...只是其内容,需要在进行处理一下,我们写到代码中看看 开始写代码 先导入库,因为最终需要从字符串中截取部分,所以用requests库获取请求,正则re匹配内容即可。然后我们先匹配出上述3项 ?...解码用了eval函数,内容为u“ + unicode编码内容 + “形式即可解码! 这样,就取出了本页所有新闻和URL相关内容,在外层加上循环,即可抓取所有的新闻页,任务完成!

    7.6K20

    js正则小结

    1,\ 斜杠用于转义,在js正则,只有一些元字符(*,?,.等)和\本身需要转义,其他不需要转义,如果其他字符前面使用了\,可能会产生负面影响,比如\b,\t这些有特殊含义转义。...此外,在js正则中,\还有一个用处在于使用new RegExp()形式创建正则对象时,比如new RegExp('a\*a'),其中*是乘以意思,js引擎在解析该正则表达式字符串时,会消耗掉这个斜杠,...2 ^ 该元字符比较简单,就是表示该正则是从字符串首字符开始匹配,有一个地方需要注意是,如果该正则表达式加了m标记时,匹配到了行分隔符时候就会结束。然后会在下一行继续匹配。...匹配除了行分隔符外所有字符 6 捕获分组(x) \n $n RegExp.$n ()代表捕获分组,x代表表达式所匹配内容可以在x所有的正则中或者其他地方使用。....$2 = y,每次正则执行完后,捕获分组或挂载到RegExp对象上,并且清除上次执行结果。 $&是一个特殊变量,他代表是整个正则表达式匹配到结果。也就是xy。 7 (?

    7.6K50

    基础 | 正则exec跟match区别

    来来来,本文给你一个清晰思路~!...一、 exec match分别是谁家方法 exec是RegExp类方法 match是String类方法 分清楚是各是哪里方法之后,就知道怎么使用了 栗子: /hello/.exec('hello...world'); 'hello world'.match(/'hello'/); 二、 区别 简单来说,跟g有关系 exec 只会匹配第一个符合字符串(意味着g对其不起作用),跟所有分组反向引用...match 是否返回所有匹配数组跟正则表达式是否带着g有关系 接下来看看有g情况下 那什么情况下match结果会跟exec一样呢,对正则要求是 不带g呗~ 还是举个栗子 这段代码两个函数都返回...["version2.1","version","2","1"] 总的来说,exec跟match区别有两点,首先是不同类方法, 其次是否跟g有关。

    74920

    Js正则Replace方法

    JS正则创建有两种方式: new RegExp() 和 直接字面量。...就是匹配最多由1个字母或数字组成字符串 六、test 、match 前面的大都是JS正则表达式语法,而test则是用来检测字符串是否匹配某一个正则表达式,如果匹配就会返回true,反之则返回false.../\d+/.test("123") ; //true /\d+/.test("abc") ; //false match是获取正则匹配到结果,以数组形式返回 "186a619b28".match...第2个参数可以是一个普通字符串或是一个回调函数 如果第1个参数是RegExp, JS会先提取RegExp匹配出结果,然后用第2个参数逐一替换匹配出结果 如果第2个参数是回调函数,每匹配到一个结果就回调一次...:记录本次匹配开始位置 source:接受匹配原始字符串 以下是replace和JS正则搭配使用几个常见经典案例:  (1)实现字符串trim函数,去除字符串两边空格 String.prototype.trim

    11.9K100

    JS

    作为函数式编程语言,JS带来了很多语言上有趣特性,比如柯化和反柯化。 这里可以对照另外一篇介绍 JS 反柯文章一起看~ 1....var sendPost = sendAjax( _ , _ , { type: "POST", contentType: "application/json" }) JS不具备这样原生支持...(个人理解不知道对不对) 3.3 延迟执行 柯另一个应用场景是延迟执行。不断化,累积传入参数,最后执行。...,甚至有些前后矛盾,在下文章都是学习过程中总结,如果发现错误,欢迎留言指出~ 参考: JS高级程序设计 JS化(currying) 前端开发者进阶之函数柯化Currying 浅析 JavaScript...中 函数 currying 柯化 掌握JavaScript函数化 函数式JavaScript(4):函数柯

    4.6K20

    藏在正则表达式陷阱

    正则表达式引擎 正则表达式是一个很方便匹配符号,但要实现这么复杂,功能如此强大匹配语法,就必须要有一套算法来实现,而实现这套算法东西就叫做正则表达式引擎。...也就是说,NFA 自动机会读取正则表达式一个一个字符,然后拿去和目标字符串匹配,匹配成功就换正则表达式下一个字符,否则继续和目标字符串下一个字符比较。...第三个是 d,匹配了,那么就读取正则表达式第二个字符:a。 读取到正则表达式第二个匹配符:a。那着继续和字符串第四个字符 a 比较,又匹配了。那么接着读取正则表达式第三个字符:y。...读取到正则表达式第三个匹配符:y。那着继续和字符串第五个字符 y 比较,又匹配了。尝试读取正则表达式下一个字符,发现没有了,那么匹配结束。...另外一个问题是在正则表达式第三部分,我们发现出现问题 URL 是有下划线(_)和百分号(%),但是对应第三部分正则表达式里面却没有。

    2K211

    藏在正则表达式陷阱

    正则表达式引擎 正则表达式是一个很方便匹配符号,但要实现这么复杂,功能如此强大匹配语法,就必须要有一套算法来实现,而实现这套算法东西就叫做正则表达式引擎。...第三个是 d,匹配了,那么就读取正则表达式第二个字符:a。 读取到正则表达式第二个匹配符:a。那着继续和字符串第四个字符 a 比较,又匹配了。那么接着读取正则表达式第三个字符:y。...读取到正则表达式第三个匹配符:y。那着继续和字符串第五个字符 y 比较,又匹配了。尝试读取正则表达式下一个字符,发现没有了,那么匹配结束。...文章首发于【博客园-陈树义】,点击跳转到原文《藏在正则表达式陷阱》 NFA自动机回溯 了解了 NFA 是如何进行字符串匹配,接下来我们就可以讲讲这篇文章重点了:回溯。...另外一个问题是在正则表达式第三部分,我们发现出现问题 URL 是有下划线(_)和百分号(%),但是对应第三部分正则表达式里面却没有。

    19720

    JS 正则表达式(数字、正则

    js校验正则: 验证数字正则表达式集  验证数字:^[0-9]*$  验证n位数字:^\d{n}$  验证至少n位数字:^\d{n,}$  验证m-n位数字:^\d{m,n}$  验证零和非零开头数字...:^(0|[1-9][0-9]*)$  验证有两位小数正实数:^[0-9]+(.[0-9]{2})?...$  验证有1-3位小数正实数:^[0-9]+(.[0-9]{1,3})?$  验证非零正整数:^\+?...3字符:^.{3}$  验证由26个英文字母组成字符串:^[A-Za-z]+$  验证由26个大写英文字母组成字符串:^[A-Z]+$  验证由26个小写英文字母组成字符串:^[a-z]+$ ...验证由数字和26个英文字母组成字符串:^[A-Za-z0-9]+$  验证由数字、26个英文字母或者下划线组成字符串:^\w+$  验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头

    9.7K40

    藏在正则表达式陷阱

    正则表达式引擎 正则表达式是一个很方便匹配符号,但要实现这么复杂,功能如此强大匹配语法,就必须要有一套算法来实现,而实现这套算法东西就叫做正则表达式引擎。...也就是说,NFA 自动机会读取正则表达式一个一个字符,然后拿去和目标字符串匹配,匹配成功就换正则表达式下一个字符,否则继续和目标字符串下一个字符比较。...第三个是 d,匹配了,那么就读取正则表达式第二个字符:a。 读取到正则表达式第二个匹配符:a。那就继续和字符串第四个字符 a 比较,又匹配了。那么接着读取正则表达式第三个字符:y。...读取到正则表达式第三个匹配符:y。那就继续和字符串第五个字符 y 比较,又匹配了。尝试读取正则表达式下一个字符,发现没有了,那么匹配结束。...NFA 对其解析过程是这样子: 首先,读取正则表达式第一个匹配符 a 和字符串第一个字符 a 比较,匹配了。于是读取正则表达式第二个字符。

    59270
    领券