正则表达式非贪婪匹配

一、正则表达式里非贪婪模式

正则表达式里非贪婪模式就是在匹配字符串时,尽可能少地匹配字符。在正则表达式中,非贪婪模式可以通过在量词后面加上问号“?”来实现。

const str = "hello world";
const reg = /l.*?o/; // 等价于 /l.*o?/
const result = str.match(reg);
console.log(result); // ["lo"]

上面代码中,正则表达式 /l.*?o/ 是非贪婪模式,它在匹配字符串 “hello world” 时,尽可能少地匹配字符。

二、正则表达式中表达非贪婪匹配

正则表达式中表达非贪婪匹配,可以通过在量词后面加上问号“?”来达到非贪婪匹配的效果。在实际应用中,非贪婪模式通常会配合其他正则表达式元字符或者组合使用。

比如要匹配字符串 “a1b2c3d4” 中的数字,可以使用如下正则表达式:

const str = "a1b2c3d4";
const reg = /\d+?/;
const result = str.match(reg);
console.log(result); // ["1"]

上面代码中,正则表达式 /\d+?/ 是贪婪模式,它在匹配字符串 “a1b2c3d4” 时,尽可能少地匹配数字。

三、如何表示非贪婪匹配

表示非贪婪匹配,可以通过在量词后面加上问号“?”来达到非贪婪匹配的效果。

非贪婪模式和贪婪模式的区别在于,非贪婪模式尽可能少地匹配字符,而贪婪模式尽可能多地匹配字符。

四、正则表达式的非贪婪匹配

正则表达式的非贪婪匹配就是在匹配字符时,尽可能少地匹配字符,可以通过在量词后面加上问号“?”来实现。

非贪婪模式通常会取代贪婪模式,因为非贪婪模式可以防止贪婪模式过度匹配字符。

五、正则表达式非匹配

正则表达式非匹配是指在匹配字符串时,匹配不包含某些字符或者某些字符串的内容。在正则表达式中,可以使用负向预查来实现非匹配。

比如要匹配字符串 “hello world, hello earth” 中除了 “world” 外的所有内容,可以使用如下正则表达式实现:

const str = "hello world, hello earth";
const reg = /hello\s(?!world).*?/;
const result = str.match(reg);
console.log(result); // ["hello earth"]

在上面的正则表达式中,使用了负向预查 (?!world) 来表示不匹配字符串 “world”。这里需要注意的是,负向预查只会匹配不包含 “world” 的字符串,而不是整个字符串 “hello world, hello earth”。

六、正则表达式贪婪模式

正则表达式贪婪模式是指在匹配字符串时,尽可能多地匹配字符。在正则表达式中,贪婪模式可以通过量词后面不加问号来实现。

比如要匹配字符串 “hello world” 中的 “llo wo”,可以使用如下正则表达式实现:

const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]

在这个正则表达式中,使用了贪婪模式,它在匹配字符时,尽可能多地匹配字符。

七、正则表达式匹配数字

在正则表达式中,可以使用元字符 \d 来表示匹配数字。

比如要匹配字符串 “a1b2c3d4” 中的数字,可以使用如下正则表达式实现:

const str = "a1b2c3d4";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["1"]

在这个正则表达式中,使用了元字符 \d 来表示匹配数字。

八、正则表达式懒惰匹配

正则表达式懒惰匹配是指在匹配字符串时,尽可能少地匹配字符。在正则表达式中,懒惰模式可以通过在量词后面加上问号“?”来实现。

比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正则表达式实现:

const str = "hello world";
const reg = /l.*?o/;
const result = str.match(reg);
console.log(result); // ["llo"]

在这个正则表达式中,使用了懒惰模式,它在匹配字符时,尽可能少地匹配字符。

九、正则表达式贪心匹配

正则表达式贪心匹配是指在匹配字符串时,尽可能多地匹配字符。在正则表达式中,贪心模式可以通过量词后面不加问号来实现。

比如要匹配字符串 “hello world” 中的 “llo”,可以使用如下正则表达式实现:

const str = "hello world";
const reg = /l.*o/;
const result = str.match(reg);
console.log(result); // ["llo world"]

在这个正则表达式中,使用了贪心模式,它在匹配字符时,尽可能多地匹配字符。

十、正则表达式匹配非负整数

在正则表达式中,可以使用元字符 \d 和量词 + 来表示匹配非负整数。

比如要匹配字符串 “123” 中的非负整数,可以使用如下正则表达式实现:

const str = "123";
const reg = /\d+/;
const result = str.match(reg);
console.log(result); // ["123"]

在这个正则表达式中,使用了元字符 \d 和量词 + 来表示匹配非负整数。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-15 12:46
下一篇 2024-12-15 12:47

相关推荐

  • Python正则表达式search()和match()有什么区别?

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

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

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

    编程 2025-04-27
  • 详解 IP 正则表达式

    一、IP 地址基础知识 在讲解 IP 的正则表达式前,我们先来了解一下 IP 地址的基础知识。IP 是 Internet Protocol 的缩写,用于标识网络中的设备。IP 地址…

    编程 2025-04-24
  • 深入理解grep正则表达式

    一、grep的基本用法 grep命令是Linux系统中最常用的命令之一,它可以在文件中查找特定的文本模式,非常方便。grep命令的基本用法: grep ‘pattern’ file…

    编程 2025-04-24
  • sed正则表达式深度解析

    一、sed正则表达式 sed(stream editor)是一个基于行的文本编辑器,它可以执行基本的文本转换功能,其中包含正则表达式的匹配和替换功能。在sed中,正则表达式被广泛应…

    编程 2025-04-23
  • 身份证号码正则表达式详解

    一、身份证号码的基础结构 身份证号码是由18个字符组成的,分为前17位和最后一位校验位。而校验位的计算方法是经过公式计算得来的,可以确定身份证号码是否错误。其中,前6位是地区码,接…

    编程 2025-04-23
  • 正整数的正则表达式

    在编程开发过程中,我们经常需要进行一些数据验证操作,以确保用户输入的数据符合一定的格式和规范。而正则表达式就是一个非常强大的工具,可以帮助我们快速、准确地检查和过滤数据。本文将从多…

    编程 2025-04-23
  • 正则表达式不包含某个字符串

    一、正则表达式基础 正则表达式是一种用来匹配字符串的工具。它通过定义一个规则来匹配符合该规则的特定文本,这样就可以对想要匹配的字符串进行过滤或者替换操作。正则表达式中包括了一些特殊…

    编程 2025-04-12
  • 身份证正则表达式详细阐述

    一、身份证正则表达式 身份证号码是中国公民的唯一身份标识,其格式是18位纯数字或17位数字加1位大写字母X。身份证正则表达式使用正则表达式来描述此格式,以进行身份证号码的合法性校验…

    编程 2025-04-12
  • 深入探究车牌号正则表达式

    一、正则表达式的基本概念 正则表达式是一种非常强大的文本处理工具,通过一系列的字符、符号和特殊字符的组合,可以方便地进行字符串的匹配、查找、替换等操作。正则表达式通常被用于编写规则…

    编程 2025-04-12

发表回复

登录后才能评论