RegExp 基础 (二)

225 阅读2分钟

前言

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

学习总结正则表达式基础:元字符、量词

元字符

边界类断言

^ 开头

var str = '学不完的Font-End'

console.log(str.replace(/^学/,'☀️'))

// ☀️不完的Font-End

$ 结尾

var str = '学不完的Font-End'

console.log(str.replace(/d$/,'☀️'))

// 学不完的Font-En☀️

\b 匹配单词边界 ;\B 匹配非单词边界;boundary(边界)

var str = "Font-End100%学不完的"

console.log(str.replace(/\b/g,'☀️'))

// ☀️Font☀️-☀️End100☀️%学不完的

console.log(str.replace(/\B/g,'☀️'))

//  F☀️o☀️n☀️t-E☀️n☀️d☀️1☀️0☀️0%☀️学☀️不☀️完☀️的☀️

预定义类

. 用于查找单个字符,除了换行和行结束符

var str = "Font-End"

console.log(str.match(/o./g)) // [ 'on' ]

console.log(str.match(/o.../g)) // [ 'ont-' ]

console.log(str.match(/F.n/g)) // [ 'Fon' ]

\w 用于查找单词字符: a-z、A-Z、0-9、下划线;\W 用于查找非单词字符; word(单词)

var str = "学不完的Font—End_100%卷它"

console.log(str.match(/\w/g))

// [ 'F', 'o', 'n', 't', 'E', 'n', 'd', '_', '1', '0', '0']

console.log(str.match(/\W/g))

//  ['学', '不', '完','的', '—',  '%','卷', '它']

\d 用于查找数字;\D 用于查找非数字; digit(数字)

var str = "Font—End_100%"

console.log(str.match(/\d/g))

// [ '1', '0', '0' ]

console.log(str.match(/\D/g))

//  [ 'F', 'o', 'n', 't','—', 'E', 'n', 'd','_', '%']

\s 用于查找空白字符;\S 用于查找非空白字符; space(空白)

var str = "Font—End 100%"

console.log(str.match(/\s/g))

// [ ' ' ]

console.log(str.match(/\S/g))

//  [ 'F', 'o', 'n', 't','—', 'E', 'n', 'd','1', '0', '0', '%']

其他

\0 查找Null字符

\n 查找换行符

\f 查找换页符

\r 查找回车符

\t 查找进制符

量词

x* 匹配任何包含 0个或 n个的字符串

var str = 'A bird warbled boooom ba'

console.log(str.match(/bo*/g))

// [ 'b', 'b', 'boooo', 'b' ]

console.log(str.match(/bo0*/g))

// [ 'bo' ]

x+ 匹配任何包含至少一个n的字符串

var str = 'A bird warbled boooom'

console.log(str.match(/bo+/g))

// [ 'boooo' ]

x? 匹配任何包含 0次 或 1次 的字符串

var str = 'A bird warbled boooom'

console.log(str.match(/bo?/g))

// [ 'b', 'b', 'bo' ]

x{n} 匹配n个x的序列的字符串, n为正整数

var str = 'A bird warbled boooom'

console.log(str.match(/o{2}/g))

// [ 'oo', 'oo' ]

x{n,} 匹配连续出现n次的字符串, n为正整数

var str = 'A bird warbled boooom bbb'

console.log(str.match(/b{2,}/g))

// [ 'bbb' ]

x{n, m} 匹配连续出现n次的字符串 至少n次,最多m次, n,m为正整数

var str = 'A bird warbled boooom bbb'

console.log(str.match(/b{1,2}/g))

//[ 'b', 'b', 'b', 'bb', 'b' ]

结语

后续 断言

参考

菜鸟教程

MDN字符类

MDN量词