重学JS-012 --- JavaScript算法与数据结构(十二)正则表达式

文章目录

正则表达式

正则表达式通常简称为 "regex" 或 "regexp",是帮助程序员匹配、搜索和替换文本的模式。正则表达式功能强大,使用了大量特殊字符。

正则表达式标志

i 表达式忽略大小写

g 全局匹配 (Global),查找所有匹配项,而不是在找到第一个匹配项后就停止。

复制代码
const helpRegex = /please help/i;  与字符串 please help 匹配的正则表达式,忽略大小写
msg.match(helpRegx); //
helpRegex.test(msg);  // return bool

string.match()

字符串有一个 .match() 方法,它接受正则表达式作为参数并确定字符串是否与该表达式匹配。

.test() vs .match()

.test() 与.match()不同,.test() 返回一个布尔值,指示字符串是否与模式匹配。

.filter()

.some() 接受一个回调函数,该函数应将数组中的一个元素作为参数。如果回调函数对数组中的至少一个元素返回true,.some() 方法将返回true。

复制代码
const arr = ["A", "b", "C"];
arr.some(letter => letter === letter.toUpperCase());

const helpRegex = /please help|assist me/i;  // 正则表达式
const denyList = [helpRegex];
const isSpam = (msg) => helpRegex.test(msg);  // .test()
const isSpam = (msg) => denyList.some(regex => regex.test(msg));  //.some()

正则 \[\]

\[\] 匹配里面的内容

/a+/ +出现1次多无数次

用 (a|b|c)​​ 匹配 ​​多个单词选项​​(如 hundred或 thousand)。

​​用 abc​​ 匹配 ​​单个字符选项​​(如 a-z匹配任意小写字母)。

标识符

? 匹配前面字符或组的零次或一次出现。

用 \s* 表达式替换第一个文字空格。

\s 字符类匹配空白,例如空格、制表符和换行符。

* 量词表示"匹配前一个字符 0 次或更多次"。

非捕获组

实际上并不需要捕获组中的匹配值,因此你可以将其转换为非捕获组。 这将允许你将字符组合在一起而不保留结果。

要在正则表达式中创建非捕获组,可以在组的左括号后添加 ?:。 例如,(?:a|b) 将匹配 a 或 b,但不会捕获结果。

相关推荐
刘马想放假9 小时前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
05Kevin10 小时前
lk每日冒险题--数据结构6.27
算法
默_笙10 小时前
🍞 我用 CSS 画了一个会转的 3D 立方体,同事以为我学了 Three.js(这节课真的很神奇,我很喜欢)
javascript
sarasuki10 小时前
JavaScript的对象、new的机制与原型包装类
javascript·后端
weedsfly10 小时前
JavaScript 事件流:彻底搞懂捕获、冒泡与事件委托
前端·javascript·react.js
candyTong11 小时前
阿里开源 AI Code Review 工具:ocr review 的执行链路解析
javascript·后端·架构
铁皮饭盒12 小时前
TypeBox 比 Zod.js 校验 快10倍, 还兼容AI 工具调用, 他做对了什么?
前端·javascript·后端
To_OC21 小时前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
kyriewen1 天前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试