正则表达式中.+?与.*?的区别

 更新时间:2022-08-04 01:14:22   作者:佚名   我要评论(0)

. 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。
?匹

. 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。

匹配前面的子表达式0到1次
*匹配前面的子表达式人任意次
+匹配前面的子表达式一次或多次>=1)
  
匹配前面的子表达式0到1次

加问号则表示为懒惰模式

  • .+? 表示匹配任意字符一个或则多个
  • .*? 表示匹配任意字符0个或多个

在具体使用时.+?可能跟好用些,看个人喜好

既然写了,顺带将正则的知识补全吧;;

在这里插入图片描述

 "\b" :不会消耗任何字符只匹配一个位置,常用于匹配单词边界 如 我想从字符串中"This is Regex"匹配单独的单词 "is" 正则就要写成 "\bis\b"  

    \b 不会匹配is 两边的字符,但它会识别is 两边是否为单词的边界 

 "\d": 匹配数字,
 
 "\w":匹配字母,数字,下划线.

 "\s":匹配空格 

  
  ".":匹配除了换行符(\r\n)以外的任何字符

    这个算是"\w"的加强版了"\w"不能匹配 空格 如果把字符串加上空格用"\w"就受限了,
    用 "."是如何匹配字符"a23 4 5 B C D__TTz"  正则:".+"
  
 "[abc]": 字符组  匹配包含括号内元素的字符 

匹配能力 ( . > \w > \d )

反义:
写法很简单改成大写就行了,这也很好理解;

   "\W"   匹配任意不是字母,数字,下划线 的字符

   "\S"   匹配任意不是空白符的字符

 "\D"  匹配任意非数字的字符

   "\B"  匹配不是单词开头或结束的位置

   "[^abc]"  匹配除了abc以外的任意字符
"{n}"  重复n次

例如从"aaaaaaaa" 匹配字符串的a 并重复3次 正则: “a{3}” 结果就是取到3个a字符 “aaa”;

“{n,m}” 重复n到m次

例如正则 “a{3,4}” 将a重复匹配3次或者4次 所以供匹配的字符可以是三个"aaa"也可以是四个"aaaa" 正则都可以匹配到

"{n,}" 重复n次或更多次

与{n,m}不同之处就在于匹配的次数将没有上限,但至少要重复n次 如 正则"a{3,}" a至少要重复3次

   "??"  重复0次或1次,但尽可能少重复

如 “aaacb” 正则 “a.??b” 只会取到最后的三个字符"acb"

“{n,m}?” 重复n到m次,但尽可能少重复

如 "aaaaaa" 正则 "a{0,m}" 因为最少是0次所以取到结果为空

“{n,}?” 重复n次以上,但尽可能少重复

如 "aaaaa" 正则 "a{1,}" 最少是1次所以取到结果为 "a"
n+匹配n至少一次(>=1)
n?匹配n 0次 或一次 (有与无)
n*匹配n 随意次(*可代表任意字母)
  
?=n匹配任何其后紧接指定字符串 n 的字符串
?!n匹配任何其后没有紧接指定字符串 n 的字符串。

==>两者相互等价

n?n{0,1}
n+n{1,}
n*n{0,}

到此这篇关于正则表达式中.+?与.*?的区别的文章就介绍到这了,更多相关正则表达式 .+?与.*?内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • 解析正则表达式中的.*,.*?,.+?的含义

相关文章

  • 正则表达式中.+?与.*?的区别

    正则表达式中.+?与.*?的区别

    . 匹配除“\r\n”之外的任何单个字符。要匹配包括“\r\n”在内的任何字符,请使用像“[\s\S]”的模式。 ?匹
    2022-08-04
  • 一看就懂的正则表达式教程

    一看就懂的正则表达式教程

    目录案例引入正则表达式命名规范结构组成用途场景Java中的正则校验正则元字符正则:普通字符正则:\d 正则:\D正则:\w正则:\W 正则:\s正则
    2022-08-04
  • 一行正则表达式判断质数的代码

    一行正则表达式判断质数的代码

    目录背景示例正则分析原理优化空间性能测试总结背景 昨天无意中看到一篇大佬的文章Primality regex(正则表达式判断质数),惊为天人,正则表
    2022-08-04
  • 正则表达式之字符串模式匹配实例详解

    正则表达式之字符串模式匹配实例详解

    目录前言什么是正则表达式字符范围匹配元字符多次重复匹配定位匹配贪婪模式与非贪婪模式表达式分组结语前言 今天我们来学习正则表达式,正则
    2022-08-04
  • 正则表达式中问号(?)的正确用法详解

    正则表达式中问号(?)的正确用法详解

    目录1、直接跟随在子表达式后面2、非贪婪匹配3、非获取匹配4、断言参考资料:正则表达式中“?”的用法大概有以下几种 1、直接跟随
    2022-08-04
  • 利用正则表达式匹配浮点型数据

    利用正则表达式匹配浮点型数据

    目录前言:正则表达式Java代码附:正则表达式(同时匹配整型数和浮点数)总结前言: 在开发中我们常常会使用到正则表达式,但很奇怪的是,每
    2022-08-04
  • jsp中文乱码问题的简单解决方法

    jsp中文乱码问题的简单解决方法

    简单解决jsp中文乱码问题 初学jsp制作一个简单的响应页面 具体代码如下: <form action="test.jsp"> username : <input type="text" nam
    2022-08-04
  • 关于react ant 组件 Select下拉框 值回显的问题

    关于react ant 组件 Select下拉框 值回显的问题

    目录react ant组件Select下拉框值回显问题情形解决得问题react ant-design Select组件下拉框map不显示问题描述问题总结react ant组件Select下
    2022-08-04
  • Java?限制前端重复请求的实例代码

    Java?限制前端重复请求的实例代码

    目录背景及用途实现步骤背景及用途 前端页面出现卡顿,用户反复点击操作按钮,导致后台接口短时间内多次提交 实现步骤 设置切面,增加注解,导
    2022-08-04
  • React路由拦截模式及withRouter示例详解

    React路由拦截模式及withRouter示例详解

    目录一、路由拦截二、路由模式三、withRouter一、路由拦截 在前面两篇 路由博客基础上,我们将ReactRouter.js的我的profile路由设置成路由拦
    2022-08-04

最新评论