正则表达式 - 正则表达式概括(作用、元字符、修饰符)

正则表达式regular expression:RegExp

  • 正则表达式是用来处理字符串的规则
    • 只能处理字符串
    • 它是一个规则:可以验证字符串是否符合某个规则(test),也可以把字符串中符合规则的内容捕获到(exec/match)
let str = "good good study, day day up!";
let reg = /\d+/; //\d代表0-9的数字,+表示出现任何多个
reg.test(str); //false
str = "2020-12-17"
reg.exec(str);// ["2020", index:0,inputs:"原始字符串"]

编写正则表达式

  • 创建正则的两种方式
  • 字面量创建方式 let reg = /\d+/,两个斜杠之间包起来的,都是用来描述规则的元字符
  • 构造函数模式创建,两个参数:元字符字符串,修饰符字符串:let reg = new RegExp("\d+");
  • 正则表达式的两个组成部分
  • 元字符:定义当前正则的组合规则,例如:\d+
  • 修饰符
/*常用的元字符*/
// 1. 量词元字符:设置出现的次数
* 零到多次
+ 一到多次
? 零次或者一次 
{
   n} 出现n次
{
   n, } 出现大于等于n次
{
   n, m} 出现n到m次
// 2. 特殊元字符:单个或者组合在一起代表特殊含义
\ 转义字符(普通->特殊->普通)
. 除\n(换行符)以外的任意字符
^ 以哪一个元字符作为开始
$ 以哪一个元字符作为结束
\n 换行符
\d 0~9之间的一个数字字符
\D0~9之间的一个字符(非数字字符,大写和小写意思是相反的)
\w 数字、字母、下划线中的任意一个字符 [0-9a-zA-Z_]
\W 非数字、字母、下划线中的任意一个字符 [^0-9a-zA-Z_]
\s 一个空白字符
\t 一个制表符(一个tab键,四个空格)
\b 匹配一个单词的边界
x|y x或者y中的一个字符
[xyz] x或y或z中的一个字符
[^xy] 除了x和y以外的任意字符
[a-z] 指定a-z这个范围中的任意字符 [0-9a-zA-Z_] === \w
[^a-z] 除了a-z以外的任意字符
() 分组符号
(?:) 只匹配不捕获
(?=) 正向预查
(?!) 负向预查
/*常用的修饰符 img*/
i => ignorecase 忽略单词大小写匹配
m => multiline 可以进行多行匹配
g => global 全局匹配

元字符及其含义完整列表

字符 描述
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,‘n’ 匹配字符 “n”。’\n’ 匹配一个换行符。序列 ‘\’ 匹配 “” 而 “(” 则匹配 “(”。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,“do(es)?” 可以匹配 “do” 或 “does” 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,‘o{2,}’ 不能匹配 “Bob” 中的 ‘o’,但能匹配 “foooood” 中的所有 o
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值