资讯专栏INFORMATION COLUMN

正则表达式常用方法和规则整理

FleyX / 2466人阅读

摘要:二常用字符串对象方法检索与正则表达式相匹配的值,返回中第一个与相匹配的子串的起始位置,如果没有找到返回方法不执行全局匹配,它将忽略标志。找到一个或多个正则表达式的匹配,返回匹配的字符串数组。替换与正则表达式匹配的子串。

作者:心叶
时间:2018-04-28 09:33

一:常用正则对象方法
RegExpObject.exec(string)

检索字符串中指定的值,如果匹配到,返回格式如下: { 0:"匹配的字符串", 1:"匹配的第一个元祖,如果有的话", 2:"以此类推,第二个元祖", ...... index:"匹配文本的第一个字符的位置", input:"输入的匹配的原来字符串", length:"0,1,2,...的个数" } exec如果匹配不到,返回null。

重要事项:完成了一次模式匹配之后检索新的字符串前应该手动地把正则对象的lastIndex属性重置为 0。

RegExpObject.test(string)

检索字符串中指定的值,如果字符串 string 中含有与RegExpObject匹配的文本,则返回 true,否则返回 false。

二:常用字符串对象方法
stringObject.search(regexp)

检索与正则表达式相匹配的值,返回stringObject中第一个与regexp相匹配的子串的起始位置,如果没有找到返回-1;search()方法不执行全局匹配,它将忽略标志 g。它同时忽略regexp的lastIndex属性,并且总是从字符串的开始进行检索,这意味着它总是返回stringObject的第一个匹配的位置。

stringObject.match(searchvalue|regexp)

找到一个或多个正则表达式的匹配,返回匹配的字符串数组。

stringObject.replace(regexp|substr,replacement|function)

替换与正则表达式匹配的子串。
温馨提示:其中function传递进去的是匹配的字符串,return返回的是最后替换成的,类似管道的写法。

 stringObject.split(separator[,howmany])

把字符串分割为字符串数组,返回切割后的数组。

三:零宽断言

零宽,意味者不会返回匹配的字符;断言,就是预测此处是什么。因此这是一种匹配不返回,只是猜测固定位置应该是什么的存在。

3.1 匹配目标的后面是exp:(?=exp)

比如现在需要匹配一个单词是以ing结尾的,但是结尾的ing不捕获,可以这样使用:

//返回结果是["do", "heee"]。

"name-doing-text-heeeing".match(/([a-z]+(?=ing))/g);

3.2 匹配目标的后面不是exp:(?!exp)

比如现在需要在一个单词里面寻找一些字母,这些字母的下一个字母不可以是e,可以这样使用:

//返回的结果是["d", "e", "a", "m"]

"dream".match(/([a-z]{1}(?!e))/g);

3.3.(? <=exp)【 匹配exp后面的位置[亲自测试JavaScript中不支持]】

3.4 "(?

如 "abc123 " 正则 "(? 四:懒惰限定符

1."*?"【重复任意次,但尽可能少重复】

//1-name-2
"1-name-2-name-2".match(/1.*?2/);

//1-name-2-name-2
"1-name-2-name-2".match(/1.*2/);

2.+?【重复1次或更多次,但尽可能少重复】

3.??【重复0次或1次,但尽可能少重复】

4.{n,m}?【重复n到m次,但尽可能少重复】

5.{n,}?【重复n次以上,但尽可能少重复】

五:捕获分组

1.(exp)【匹配exp,并捕获文本到自动命名的组里】

2.(?exp)【匹配exp,并捕获文本到名称为name的组里[亲自测试JavaScript中不支持]】

3.(?:exp)【匹配exp,不捕获匹配的文本,也不给此分组分配组号】

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/94684.html

相关文章

  • PHP正则达式规则常用方法整理

    摘要:和均为非负整数,其中。如果之前至少个获取的子表达式,则为后向引用。 注:本文转自 摘取天上星的博客 PHP常用正则表达式 ^d+$  //非负整数(正整数+ 0) ^[0-9]*[1-9][0-9]*$  //正整数 ^((-d+)|(0+))$  //非正整数(负整数+ 0) ^-[0-9]*[1-9][0-9]*$  //负整数 ^-?d+$    //整数 ^d+(.d+)?$ ...

    UCloud 评论0 收藏0
  • 搞定PHP面试 - 正则达式知识点整理

    摘要:是决定正则表达式匹配规则的主要部分。二分隔符分隔符的选择当使用函数的时候,正则表达式必须由分隔符闭合包裹。果分隔符经常在正则表达式内出现,最好使用其他分隔符来提高可读性。需要将一个字符串放入正则表达式中使用时,可以用函数对其进行转义。 一、简介 1. 什么是正则表达式 正则表达式(Regular Expression)就是用某种模式去匹配一类字符串的一种公式。正则表达式使用单个字符串来...

    AaronYuan 评论0 收藏0
  • 正则达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • 正则达式-温故而知新

    摘要:正则表达式重新整理学习,为了加深印象,发现了之前遗漏的一个非常重要的知识点优先选择最左端的匹配结果,这个规则上创建正则的方式直接字面量的创建通过双斜杠,在中间添加匹配的规则,这样就是一个正则表达式了通过构造函数创建通过构造函数来创建正则对象 正则表达式 重新整理学习,为了加深印象,发现了之前遗漏的一个非常重要的知识点优先选择最左端的匹配结果,这个规则 js上创建正则的方式 直接字面...

    snowell 评论0 收藏0
  • 正则系列——JavaScript正则达式入门心得

    摘要:对前端来说,使用的场景不多,但是像微信端的对话系统的表情包,就使用到了一个特定的规则。我是一个前端,工作年了,现在失业,想进入腾讯工作,这是我的联系方式这个正则虽 我发现有个别字符被这个编辑器给刷掉了,但是灰色区域显示正常,以灰色区域代码为准 什么玩意? 在我刚开始学习编程的时候,就听过正则了,也听说正则很牛逼,懂正则的更牛逼。但是苦于没有人指点,也没有使用正则的场景,自己看教程又懵逼...

    DevWiki 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<