重学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,但不会捕获结果。

相关推荐
老赵聊算法、大模型备案8 小时前
北京市生成式人工智能服务已备案信息公告(2025年12月11日)
人工智能·算法·安全·aigc
CoderYanger9 小时前
C.滑动窗口-求子数组个数-越长越合法——2799. 统计完全子数组的数目
java·c语言·开发语言·数据结构·算法·leetcode·职场和发展
厕所博士9 小时前
红黑树原理前置理解—— 2-3 树
算法·2-3树·红黑树原理理解前置
萌>__<新10 小时前
力扣打卡每日一题————除自身外所有元素的乘积
数据结构·算法
拉不动的猪10 小时前
webpack编译中为什么不建议load替换ast中节点删除consolg.log
前端·javascript·webpack
xu_yule10 小时前
算法基础—搜索(2)【记忆化搜索+BFS+01BFS+Floodfill]
数据结构·算法
s090713610 小时前
Xilinx FPGA使用 FIR IP 核做匹配滤波时如何减少DSP使用量
算法·fpga开发·xilinx·ip core·fir滤波
老马啸西风11 小时前
成熟企业级技术平台-10-跳板机 / 堡垒机(Bastion Host)详解
人工智能·深度学习·算法·职场和发展
子夜江寒11 小时前
逻辑回归简介
算法·机器学习·逻辑回归
软件算法开发11 小时前
基于ACO蚁群优化算法的多车辆含时间窗VRPTW问题求解matlab仿真
算法·matlab·aco·vrptw·蚁群优化·多车辆·时间窗