正则表达(视频笔记)

鉴于对正则表达式的不熟悉,看来一个入门的视频链接,做了一下笔记,方便以后查阅

var reg=/\bis\b/;

\b代表这是一个完整的单词eg:'this is a man,this is a woman.'.replace(reg,'IS')结果输出:this IS a man,this is a woman.

g:当在后面加个g表示全文匹配:reg=/\bis\b/g;

结果输出:this IS a man,this IS a woman.

i:忽略大小写

’he is a boy,IS he'.replace(/\bis\b/g,'0')结果:he 0 a boy,IS he

’he is a boy,IS he'.replace(/\bis\b/gi,'0')结果:he 0 a boy,0 he

m:多行搜索

\n:换行

\r:回车

\0:空字符

\f:换页符

\t:tab

[]使用元字符构建一个简单的类,eg:[abc]表示包含a or b or c

'a1b2c3d4'.replace(/[abc]/g,'x')结果输出:x1x2x3d4

字符类取反:使用^创建反向类/负类

'a1b2c3d4'.replace(/[^abc]/g,'x')结果输出:axbxcxxx

范围类:[a-zA-Z]a-z,大写A-Z的任意字符

eg:'a1b1Z3'.replace(/[a-zA-Z]/g,'Q')结果:Q1Q2Q3

'2018-09-10'.replace(/[0-9]/g,'A')结果:AAAA-AA-AA

'2018-09-10'.replace(/[0-9-]/g,'A')结果:AAAAAAAAAA

预定义类:

.:除了回车和换行之外的所有字符[^/r/n]

\d:数字字符=[0-9]

\D:非数字字符=[^0-9]

\s:空白字符

\S:非空白字符

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

\W:非单词字符=[^a-zA-Z_0-9]

eg:匹配一个ab+数字+任意字符的字符串

reg=/ab\d./;==/ab[0-9][^/r/n]/;

边界:

^:以xxx开始,写在前面

$:以xxx结束,写在后面

\b:单词边界

\B:非单词边界

eg:'This is a boy'.replace(/is/g,'0')结果:Th0 0 a boy

'This is a boy'.replace(/\bis\b/g,'0')结果:This 0 a boy

'This is a boy'.replace(/\Bis\b/g,'0')结果:Th0 is a boy

'@123@abc@'.replace(/@./g,'Q')结果:Q123Qabc@

'@123@abc@'.replace(/^@./g,'Q')结果:Q123@abc@

'@123@abc@'.replace(/.@/g,'Q')结果:@123QabcQ

'@123@abc@'.replace(/.@$/g,'Q')结果:@123@abcQ

str=“@123

@456

@789”

str.replcae(/^@\d/g,'X')

结果:

X23

@456

@789

str.replcae(/^@\d/gm,'X')

X23

X56

X89

量词:

?:最多出现1次

+:至少出现一次

*:任意次数

{n}:出现n次

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

{n,}:至少出现n次

/\d{20}\w\d?\w+\d*\d{3}\w{3,5}\d{3,}

贪婪模式(模式模式):尽可能匹配最多

'12345678'.replace(/\d{3,6}/g,'X'}结果:X78

非贪婪模式:在量词后面加上?就可以了

'12345678'.replace(/\d{3,6}?/g,'X'}结果:X45678

分组:使用()可以达到分组的功能

匹配字符串Byron连续出现3次的场景

(Byron){3}

'a1b2c3d4'.replace(/([a-z]/d){3}/g,'a')

或:|

’ByronCasper'.replace(/Byron|Casper/g,'X')结果:XX

’ByronCasper'.replace(/Byron|Casper/g,'X')结果:XX

反向应用:2015-12-25==>12/25/2015

‘2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'$2/$3/$1')

忽略分组:加上?:

前瞻:

正向前瞻:exp(?=assert)

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

正向后顾:exp(?<=assert)JavaScript不支持

负向后顾:exp(?<assert)JavaScript不支持

eg:\w(?=\d)

'a2*3'.replace(/\w(?=\d)/g,'X')结果:X2*3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值