码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式

时间:2020-05-08 13:28:57      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:子串   height   数组元素   参数   round   regexp   d3d   order   括号   

介绍

        正则表达式是regular expression(规则表达式),就是定义字符串规则的表达式,语法基于一种古老的perl语言,它描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

        正则表达式并不是只有前端才有,很多后端语言也都支持正则,正则本身是独立于语言之外的。当初的浏览器是用来浏览一些新闻之类的文字信息,那么对于字符串的操作就比较重要了,比如验证表单,模糊搜索等。

语法

第一种  new创建正则

1 var reg=new RegExp(a)
2 var str=abcdefg;
3 console.log(reg.test(str));  // 返回bool值true,代表是否匹配成功

第二种  字面量创建正则

        字面量定义正则的话两条斜线之间的任意字符都是有含义的,都会纳入到正则判断里

var reg = /a/
var str=abcdefg;
console.log(reg.test(str)) // true

特殊字符

[ ] 中括号:匹配其中的某一个字符

[abcde]  匹配abcde其中任意一个

[a-z]        匹配所有小写字母

[0-9]        匹配任意一个数字

( ) 小括号 分组:小括号里面的内容作为整体进行匹配

/(ab) | (cd)/   匹配 ‘ab‘ 或者 ‘cd‘

/(a|b)cd/          匹配 ‘acd‘ 或者 ‘bcd‘

注意:小括号、竖线不要放在 [ ] 内(无意义)

| : 或,跟js中的(||)一样

^:排除(除了) 类似js中的(!)

^ (不在中括号里)匹配字符串开头

$ 匹配结尾

/^ $/ 这样的正则代表完整匹配

 

转义字符:元字符

        所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

元字符  含义  等价表达式
\d
数字 [0-9]
\D 非数字 [^0-9] 
\w 数字,字母,下划线 [a-z0-9_A-Z]
\W 非数字,字母,下划线 [^a-z0-9_A-Z]
\s 空白字符   
\S  非空白字符  
. 全部字符   
\b  匹配单词边界   
\B 匹配 非 单词边界   
\0(数字0) 匹配 NUL 字符  
\n 匹配 换行符   
\f  匹配 换页符  
\r  匹配 回车符  
\t  匹配 制表符   
\v 匹配 垂直制表符  
\u4e00 - \u9fa5 验证中文  
\u5343\u950b\u4e92\u8054  千锋互联   

 

量词

        正则表达式的一个符号块只能匹配文本中的一个符号,如果要多次匹配那么我们就需要量词

量词 含义 等价表达式
{n} 匹配n次  
{n,m} 最少n次,最多m次  
{n,} 最少n次,最多不限  
+ 最少1次,最多不限 {1,}
? 可有可无,最多一个 {0,1}
* 可以有也可以没有,个数不限 {0,}

修饰符

i   代表让正则不区分大小写

g  代表全局查找

代表多行查找(必须与g一起使用,并且,当使用^和$模式时才会起作用)

        如:

1 var re = new RegExp(a, i)
2 var re= /a/i

        多个修饰符可以写在一起

1 var re = new RegExp(a, ig)
2 var re= /a/ig

直接量字符

        正则中有一些字符本身是具有含义的,那么如果我们要匹配这个字符就需要用到 \ 转义

     
/ 匹配 / \\ 匹配 \ \. 匹配 .
\* 匹配 * \+ 匹配 + ? 匹配 ?
\ 匹配| \( 匹配 (
\[ 匹配 [ \] 匹配 ] \{ 匹配 {
\} 匹配 } \’ 匹配 单引号 \” 匹配 双引号
\xxx 查找以八进制数 xxx 规定的字符 \xdd 查找以十六进制数 dd 规定的字符 \uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符

正则对象的API

方法(API) 描述
test 用来测试某个字符串是否与正则匹配,匹配就返回true,否则返回false
compile 该方法的作用是能够对正则表达式进行编译,被编译过的正则在使用的时候效率会更高,适合于对一个正则多次调用的情况
exec 返回的是一个数组,数组元素为匹配的子字符串

test方法

1 var reg = /a/
2 var str = abcdefg;
3 console.log(reg.test(str));  // true

compile方法

1 var reg=/[abc]/gi
2 console.log(reg.test(a))
3 
4 reg=/[cde]/gi
5 reg.compile(reg)
6 console.log(reg.test(a))
7 console.log(reg.test(a))

exec方法

var str = dadf123dsafd33dfds;;;[]123dg;123
var reg = /\d+/
var arr = reg.exec(str)
console.log(arr) // [‘123‘] 

支持正则的字符串API

方法(API) 描述
search 查找第一次匹配的子字符串的位置  ,如果找到就返回一个number类型的index值,否则返回-1
replace
该方法用来将字符串中的某些子串替换为需要的内容,接受两个参数,第一个参数可以为正则或者子字符串,表示匹配需要被替换的内容,第二个参数为被替换的新的子字符串
split 将一个字符串拆分成一个数组,它接受一个正则或者子字符(串)作为参数,返回一个数组
match 接收一个正则作为参数,用来匹配一个字符串,返回一个数组

 

 

正则表达式

标签:子串   height   数组元素   参数   round   regexp   d3d   order   括号   

原文地址:https://www.cnblogs.com/rkgg07kj3gs/p/12849403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!