正则表达式不包含的应用和技巧

一、使用(?!)排除某个字符串

//示例代码:
let str = "I love coding! But I don't like debugging.";
let reg = /coding(?!ing)/g;
let result = str.replace(reg, "write");
console.log(result);

//输出:"I love write! But I don't like debugging."

正则表达式不包含的最基本用法是使用(?!)语法,在匹配时排除某个字符串。比如,我们想要找到所有“coding”单词,但不包括“coding”后面的“ing”时,可以这样写:coding(?!ing)

这里的(?!是一个非捕获组,表示在coding后面不应该跟着ing。这样我们就可以找到所有“coding”单词,但不包括“coding”后面的“ing”部分。

二、使用(?=)匹配符合条件的单词

//示例代码:
let str = "My favorite fruit is apple.";
let reg = /\b[a-z]+\b(?= \bapple\b)/g;
let result = str.match(reg);
console.log(result);

//输出:["favorite"]

与使用(?!)正好相反,我们也可以使用(?=)语法来查找符合特定条件的单词,比如在一段文本中找到与单词“apple”组合使用的单词。

在上面的示例中,我们使用正则表达式\b[a-z]+\b(?= \bapple\b),其中(?= \bapple\b)表示匹配包含“apple”的单词且该单词前面的单词是任意大小写字母构成的单词,\b表示单词边界,[a-z]+表示至少一个小写字母组成的单词。

三、使用模式拼接多个正则表达式

//示例代码:
let str = "

Regex is amazing!

"; let reg1 = //g; let reg2 = /[^a-zA-Z]+/g; let result = str.replace(reg1, "").replace(reg2, " "); console.log(result); //输出:"Regex is amazing"

正则表达式不包含还可以用于模式拼接,将多个正则表达式拼接起来实现特定的功能。比如,我们想要将HTML标签和标点符号都删除并只保留单词,可以将多个正则表达式拼接起来使用。

在上面的示例中,我们使用两个正则表达式//g/[^a-zA-Z]+/g,将HTML标签和标点符号删除,并只留下单词部分。

四、使用负向预查匹配

//示例代码:
let str1 = "ab1cd2ef3";
let reg1 = /\d+(?=[a-z])/;
let result1 = str1.match(reg1);
console.log(result1);

let str2 = "abcABC123";
let reg2 = /\w+(?!123)/;
let result2 = str2.match(reg2);
console.log(result2);

//输出:["2"] 和 ["abcABC"]

负向预查匹配是指匹配一个字符,除非这个字符的后面紧跟着指定的模式。在正则表达式中使用(?!...)即可实现负向预查匹配。

在上面的示例中,/\d+(?=[a-z])可以匹配数字后面跟着字母的部分,如“2e”;/\w+(?!123)/则可以匹配除了以“123”结尾的单词,如“abcABC”。

五、使用(?<=)匹配以某个字符结尾的单词

//示例代码:
let str = "First one, second, third.";
let reg = /(?<=, )\b[a-z]+\b/g;
let result = str.match(reg);
console.log(result);

//输出:["second", "third"]

与使用(?!)和(?=)正好相反,我们还可以使用(?<=)语法来查找以某个字符结尾的单词。这里的(?<=...)表示匹配前面是…的部分,并在这个部分后面匹配符合条件的单词。

在上面的示例中,我们使用正则表达式/(?<=, )\b[a-z]+\b/g,其中(?<=, )表示匹配以逗号和空格结尾的单词,\b表示单词边界,[a-z]+表示至少一个小写字母组成的单词。

原创文章,作者:HPDWB,如若转载,请注明出处:https://www.506064.com/n/332469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
HPDWBHPDWB
上一篇 2025-01-24 18:46
下一篇 2025-01-24 18:46

相关推荐

  • 使用vscode建立UML图的实践和技巧

    本文将重点介绍在使用vscode在软件开发中如何建立UML图,并且给出操作交互和技巧的指导。 一、概述 在软件开发中,UML图是必不可少的重要工具之一。它为软件架构和各种设计模式的…

    编程 2025-04-29
  • Python正则表达式search()和match()有什么区别?

    search()和match()都是Python中的正则表达式函数,它们的作用都是在一个字符串中搜索匹配正则表达式的位置,但它们有着不同的使用场景和返回结果。 一、search()…

    编程 2025-04-29
  • 优秀周记1000字的撰写思路与技巧

    优秀周记是每个编程开发工程师记录自己工作生活的最佳方式之一。本篇文章将从周记的重要性、撰写思路、撰写技巧以及周记的示例代码等角度进行阐述。 一、周记的重要性 作为一名编程开发工程师…

    编程 2025-04-28
  • 堆叠图配色技巧分享

    堆叠图是数据可视化中常用的一种表现形式,而配色则是影响堆叠图观感和传达信息的重要因素之一。本文将分享一些堆叠图配色的技巧,帮助你创造更好的数据可视化。 一、色彩搭配原则 色彩是我们…

    编程 2025-04-27
  • 使用uring_cmd提高开发效率的技巧

    对于编程开发工程师来说,提高效率一直是致力追求的目标。本文将深度解析如何使用uring_cmd,提升工作效率。 一、常用命令 uring_cmd是一个非常强大的命令行工具,但是大部…

    编程 2025-04-27
  • 通信专业Python和Java的开发技巧

    本文旨在介绍通信专业Python和Java的开发技巧,为读者提供实用且可操作的思路和方法。 一、Python在通信领域中的应用 Python是一种优秀的程序设计语言,因其易学易用、…

    编程 2025-04-27
  • 前端引用字体的实现方法和技巧

    对于前端开发人员而言,字体關系着网站的整体美观度和用户体验。为了满足客户,开发人员经常需要引用特定的字体。在这篇文章中,我们将会详细解决前端引用字体的实现方法和技巧。 一、字体引用…

    编程 2025-04-27
  • MySQL正则表达式替换

    MySQL正则表达式替换是指通过正则表达式对MySQL中的字符串进行替换。在文本处理方面,正则表达式是一种强大的工具,可以方便快捷地进行字符串处理和匹配。在MySQL中,可以使用正…

    编程 2025-04-27
  • if not in case – Python中使用if语句进行逻辑判断的技巧

    if语句是Python中进行逻辑判断的基础语句之一。在if语句中,我们可以使用not关键字和in关键字来进行更加灵活的判断。本文将详细介绍Python中使用if not in ca…

    编程 2025-04-27
  • JavaScript中修改style属性的方法和技巧

    一、基本概念和方法 style属性是JavaScript中一个非常重要的属性,它可以用来控制HTML元素的样式,包括颜色、大小、字体等等。这里介绍一些常用的方法: 1、通过Java…

    编程 2025-04-25

发表回复

登录后才能评论