美文网首页
论正则表达式

论正则表达式

作者: Anna_Hu | 来源:发表于2017-10-02 09:56 被阅读0次

先摘抄一段官方解释-------正则表达式:又称规则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式的功能尤其强大,下面来看看具体它能做什么吧!

1,正则表达式的创建:

(1)字面量:var reg = / / ;

(2)表达式:var reg = new RegExp();

2,正则表达式的分类:

(1)简单类:eg: var reg = / abc / ---- 匹配内部含有abc的字符串

(2)字符类:eg:var reg = / [abc] / ----- 匹配内部含有a或b或c的字符串

(3)反向类:eg:var reg = / [^abc] / ---- 匹配内部不含有abc的字符串

(4)范围类:eg: var reg = /[a-n]/ ---- 匹配内部含有a-n中任意一个元素的字符串

(5)组合类:eg : var reg = /[1-6c-z]/ --- 匹配内部含有1-6或者c-z中任意一个元素的字符串;

(6)预定义类(只列举一些常用的)

 ------------- 点 (. ) ------------- 匹配除了换行和回车之外的所有字符

-------------- \d ------------------- 匹配 数字=>/[0-9]/

-------------- \D------------------- 匹配非数字=>/[^0-9]/

-------------- \w ------------------ 匹配字母=>/[a-zA-Z]/

--------------\W------------------ 匹配非字母=>/[^a-zA-Z]/

-------------- \s ----------------- 匹配空格

-------------- \b ---------------- 单词边界

(7)边界标识 :var reg = /^abc/ 匹配以abc开头的字符串;var reg = /abc$/匹配以abc结束的字符串;va reg = /^abc$/ 严格匹配abc

(8)自定义量词:

--------------- / a{n} /---------- 表示匹配n个a

--------------/ a{m,n} /--------- 表示匹配m-n之间任意数量的a

-------------/ a{m,} / ---------- 表示匹配a出现的次数至少为m次

(9)预定义量词:

------------- / a* / ------------- 表示匹配a出现l零次或多次

------------- / a+ / ------------ 表示匹配a出现一次或多次

-------------/ a? / -------------表示匹配a出现零次或一次

3,正则表达式的使用:

(1)reg.test( 字符串 ) ------- 返回值为布尔值,匹配成功返回true,失败则返回false;

(2)字符串.match(reg) -------  返回值为一个数组;

(3)reg.exec(字符串)------- 同样返回一个数组;

(4)字符串.replace(reg,替换后的值) ----- 返回结果为替换后的字符串

4,注意点:

(1) /g ----- 全局匹配

(2)/i ------- 忽略大小写匹配

(3)/m ----- 多行匹配(针对换行情况)

(4) lastIndex ----- 当前匹配结果的最后一个字符的下一个字符的索引

这里需要举个栗子:

var reg = /\w/g;

console.log( reg.test("ab"))  ----- 第一次打印结果为true;第二次打印结果为true;第三次打印结果为false;再次打印,结果又从true--true---false依次循环往复。第一次打印的时候,当前匹配结果为a,a为单个字符,所以它的下一个字符是b,b的索引即为1;第二次打印的时候,当前匹配结果为b,b也是单个字符,它的下一个字符是空,索引为2;后面就没有匹配的结果了。

(5)前瞻:

-----正向前瞻:exp(?=assert)-------

-----负向前瞻:exp(?!assert)--------

举个栗子:

"a1b2*3".replace(/\w(?=\d)/g,“x")----> x1x2*3 

断言的部分?=\d不会加入运算中,知识匹配的一个条件。

(6)反向引用:

举个栗子:将2017-10-02转化为10/02/2017

var str = "2017-10-02";

var reg = /(\d{4})-(\d{2})-(\d{2})/g

str.replace(reg, '$2/$3/$1' ) -----> 10/02/2017

加了小括号()代表分组,第一个分组是 $1 ,第二个分组是$2,第三个分组是 $3.....

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:论正则表达式

      本文链接:https://www.haomeiwen.com/subject/uqezextx.html