学懂正则表达式(RegExp)

简介: 学懂正则表达式(RegExp)

正则表达式(RegExp)


概述:正则表达式是一个字符串匹配利器,可以帮助我们搜索、获取、代替字符串

正则表达式主要由两部分组成:模式(patterns)和修饰符(flags)

方法

描述符

exec

一个在字符串中执行查找匹配的 RegExp 方法,它返回一个数组(未匹配到则返回 null)。

test

一个在字符串中测试是否匹配的 RegExp 方法,它返回 true 或 false。

match

一个在字符串中执行查找匹配的 String 方法,它返回一个数组,在未匹配到时会返回 null。

matchAll

一个在字符串中执行查找所有匹配的 String 方法,它返回一个迭代器(iterator)。

search

一个在字符串中测试匹配的 String 方法,它返回匹配到的位置索引,或者在失败时返回-1。

replace

一个在字符串中执行查找匹配的 String 方法,并且使用替换字符串替换掉匹配到的子字符串

split

一个使用正则表达式或者一个固定字符串分隔一个字符串,并将分隔后的子字符串存储到数组中 的 String 方法

修饰符flag

flag

含义

g

全部的,全部都要匹配

i

忽略大小写

m

多行匹配

规则 - 字符类

字符

含义

\d (digit)

数字:从0到9的字符

\s (space)

空格符号

\w (word)

“单字”字符,拉丁字母或者数字下划线

. (点)

它与"除换行符之外的任何字符"匹配

反向类:


  • \D 非数字:除 \d 以外的任何字符,例如字母。
  • \S 非空格符号:除 \s 以外的任何字符,例如字母。
  • \W 非单字字符:除 \w 以外的任何字符,例如非拉丁字母或空格。


规则 - 锚点


符号 ^ 和符号 $ 在正则表达式中具有特殊的意义,它们被称为“锚点”


  • 符号 ^ 匹配文本开头;
  • 符号 $ 匹配文本末尾;

词边界: \b (一下位置对应 \b)

微信图片_20221010232759.png

规则 - 转义字符串


要把特殊字符作为常规字符来使用,只需要在它前面加个反斜杠;


例如:[] \ ^ $ . | ? * + ( )


集合(Sets)和范围(Ranges)


有时候我们只要选择多个匹配字符的其中之一就可以:


  • 在方括号 […] 中的几个字符或者字符类意味着“搜索给定的字符中的任意一个”;


集合(Sets)

比如说,[eao] 意味着查找在 3 个字符 ‘a’、‘e’ 或者 `‘o’ 中的任意一个;

范围(Ranges)


  • 方括号也可以包含字符范围;
  • 比如说,[a-z] 会匹配从 a 到 z 范围内的字母,[0-5] 表示从 0 到 5 的数字;
  • [0-9A-F] 表示两个范围:它搜索一个字符,满足数字 0 到 9 或字母 A 到 F;
  • \d —— 和 [0-9] 相同;  \w —— 和 [a-zA-Z0-9_] 相同;


量词(Quantifiers)


用来形容我们所需要的数量的词被称为量词( Quantifiers )。


数量 {n}


  • 确切的位数:{5}
  • 某个范围的位数:{3,5}

缩写:


  • +:代表“一个或多个”,相当于 {1,}
  • ?:代表“零个或一个”,相当于 {0,1}。换句话说,它使得符号变得可选;
  • *:代表着“零个或多个”,相当于 {0,}。也就是说,这个字符可以多次出现或不出现;


贪婪(Greedy)和惰性(lazy)模式


贪婪模式:默认情况下的匹配规则是查找到匹配的内容后,会继续向后查找,一直找到最后一个匹配的内容


懒惰模式:懒惰模式中的量词与贪婪模式中的是相反的。  只要获取到对应的内容后,就不再继续向后匹配。


更多正则查询:https://c.runoob.com/front-end/854/



相关文章
|
8月前
|
存储 JavaScript 安全
JS正则表达式:常用正则手册/RegExp/正则积累(二)
JS正则表达式:常用正则手册/RegExp/正则积累
56 0
|
8月前
|
JavaScript 前端开发
JS正则表达式:常用正则手册/RegExp/正则积累(一)
JS正则表达式:常用正则手册/RegExp/正则积累
67 1
|
8天前
|
机器学习/深度学习 Python
正则表达式(Regular Expression,常简写为regex或regexp)是一种强大的文本处理工具
【5月更文挑战第12天】正则表达式是文本处理工具,Python的re模块支持其使用。元字符如.、*、+、?等在正则表达式中具有特殊含义,用于指定匹配规则。示例中,通过正则表达式模式匹配字符串中的电子邮件地址,并使用re.findall()找出所有匹配项。
24 4
|
8天前
|
安全
正则表达式(Regular Expression,简称regex或regexp)
正则表达式(Regular Expression,简称regex或regexp)
26 2
|
8天前
|
数据采集 监控 Go
掌握Go语言正则表达式:regexp包全面解析
掌握Go语言正则表达式:regexp包全面解析
91 0
|
9月前
|
SQL 关系型数据库 MySQL
解密MySQL中强大的武器——REGEXP正则表达式
家人们,今天我来为大家介绍一项在 MySQL 中非常强大的武器——`REGEXP`正则表达式。MySQL 作为一款广泛使用的关系型数据库管理系统,其内置的 REGEXP 关键字为我们提供了强大的正则表达式功能,使得我们可以更加灵活和高效地进行数据匹配和处理
69 0
解密MySQL中强大的武器——REGEXP正则表达式
|
8天前
|
人工智能 JavaScript
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
js正则表达式new RegExp(表达式, “gi“)不区分大小写、忽略大小写匹配替换字符
|
11月前
|
存储 前端开发 Go
golang正则表达式regexp
golang正则表达式regexp
258 0
正则表达式(RegExp)
正则表达式(RegExp)
83 0
4.4、RegExp正则表达式对象
4.4、RegExp正则表达式对象
75 0
4.4、RegExp正则表达式对象