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

关于正则表达式的一些基础知识

时间:2017-10-05 17:18:21      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:where   正则匹配   multiple   构造函数   test   bis   修饰符   包含   调用   

预定义类,特殊类:
1.\d [0-9]

2.. [^\r\n],非\r和\n外的所有字符

3.\D [^0-9]

4.//代表/本身

5.\s[\t\n\xOB\f\r] 空白符

6.\w[a-zA-Z_0-9]单词字符(字母.数字,下划线)

7.\W[^a-zA-Z_0-9]非单词字符


修饰符:
修饰符用于正则匹配公式//后面,如/\d/g,/*.{5,8}/g

1.g,匹配字符串所有字符,多次匹配,不添加搜索到第一个匹配停止,

2.i ignore case 忽略大小写

3.m:multiple lines 多行搜索


特殊字符:* + ? $ ^ . | \ () {} []

[]:字符类,把一系列匹配符归为一类,符合类里面任意一个匹配方式即可
如:‘1b2c3d4e5‘.replace(/[abc]/g,‘x‘)
//"1x2x3d4e5"

^:反向类,用于匹配不属于某类的内容,仅用于中括号内
如:‘1b2c3d4e5‘.replace(/[^abc]/g,‘x‘)
//xbxcxxxxx"

-:范围类,[a-z],用于匹配a到z之间的字符
如‘a1b2c3d4x5z9‘.replace(/[a-z]/g,‘啊‘)

//"啊1啊2啊3啊4啊5啊9"
注意:匹配-(横线)与范围类字符时,只要在后面加-即可,如‘2015-12-01‘.replace(/[0-9-]/g,‘a‘)//"aaaaaaaaaa"

 

边界符:

^:以XXX开始,需在中括号外使用

$:以XXX结束,需在中括号外使用

^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串


\b:单词边界

\B:非单词边界

\b匹配的是字之间的看不见的边界,每个单词前后都有 \b


量词:

?:出现一次或没有

+:出现一次或多次

*:出现任意次

{n}:出现n次

{n,m}:出现n-m次

{n,}:出现最少n次


分组:用()可以达到分组功能,使量词作用于分组

如:检测字符串中是否有7个boy
/boy{7}/g.test(‘boyboyboyboyyyyyyy‘)
//true
因为这里匹配的是y{7}
/(boy){7}/g.test(‘boyboyboyboyyyyyyy‘)

或符号:|

反向引用:分组后可以用$num代表一个分组,用于字符串位移
如:把2016-11-25改成11/25/16
‘2016-11-25‘.replace(/(\d{4})-(\d{2})-(\d{2})/g,‘$3/$2/$1‘)
//"25/11/2016"


匹配函数使用方式: 注意:默认大小写敏感
匹配判断

方式1. /正则公式/.test(要匹配的参数),返回值true or false
如/\d\d\d/.test("123"), //true

方式2. 显式调用方式,new RegExp(正则公式).test(要匹配参数)
如new RegExp(/\d\d\d/).test(123),//true

 

匹配替换
方式1.JS里字符串默认自带的函数: 要匹配的字符串.replace(正则公式,替换字符),返回值为替换后的字符串
如‘He is a boy.This is a dog.where is he?‘.replace(/\bis\b/,‘IS‘)
//"He IS a boy.This is a dog.where is he?"


方式2.RegExp构造函数:首先声明 var reg=new RegExp(正则公式,匹配方式),然后要匹配的字符串.replace(正则对象,替换字符)
如:var reg=new RegExp(‘\\bis\\b‘,‘g‘)
‘He is a boy.This is a dog.where is he?‘.replace(reg,‘IS‘)
//"He IS a boy.This IS a dog.where IS he?"

注意:方式2里,RegExp构造函数函数的第一个参数需要传的是字符串而不是匹配公式,所以\需要转意为\\

关于正则表达式的一些基础知识

标签:where   正则匹配   multiple   构造函数   test   bis   修饰符   包含   调用   

原文地址:http://www.cnblogs.com/Jarvis-Blog/p/7629379.html

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