JavaScript 正则表达式

简介和工具

什么是正则表达式?

使用单个字符串描述,匹配一系列符合某个句法规则的字符串。

使用场景

1.比如在 IDE 里使用正则查找替换
2.在 linux 里寻找当前目录下的 .txt 文件

find ./ -name *.txt
图形工具

https://regexper.com/, 访问不了安装本地服务:https://gitlab.com/javallone/regexper-static


开始使用

常用规则

1.开始结束: ^** 2.通配符 **.** 3.任意次数 **\*** 4.次数 **{}** 5.分组 **()**, 获取分组 **1 (第一个分组)
6.构建一个类 []
7.单词边界 \b
8.全文匹配 g
9.忽略大小写 i
10.取反 ^,通常写在 [^abcd]
11.一次或多次 +
12.在分组内加入(?:reg)则该分组不会被匹配
13.前瞻和后顾:

// 前瞻:
exp1(?=exp2) 查找exp2前面的exp1
// 后顾:
(?<=exp2)exp1 查找exp2后面的exp1
// 负前瞻:
exp1(?!exp2) 查找后面不是exp2的exp1
// 负后顾:
(?<!exp2)exp1 查找前面不是exp2的exp1

eg: a2*3 匹配一个字母跟着一个数字,并替换该字母为 X

'a2*3'.replace(/\w(?=\d)/g, 'X')
使用方式
1.字面量 var reg = \ regexp \
2.构造函数 new RegExp()
test 和 exec 方法

1.test 某个字符串的时候如果加 g(全局匹配修饰符),多次执行结果会不同,原因是全局匹配模式会从 当前匹配结果的最后一个字符的下一个位置 开始匹配。
2.调用非全局 RegExp 对象的 exec 方法时返回数组,第一个元素是匹配的文本,第二个是与第一个子表达式(也就是()内的内容)匹配的文本,第三个是第二个子表达式匹配的文本(如果有的话),以此类推

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容