我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

. 匹配除“\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,}

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

web正则表达式中.+?与.*?的区别是什么

本篇内容主要讲解“web正则表达式中.+?与.*?的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web正则表达式中.+?与.*?的区别是什么”吧!. 匹配除“\r\n”之外的任何单个
2023-06-30

js正则表达式和php正则表达式有哪些区别

这篇文章主要介绍了js正则表达式和php正则表达式有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js正则表达式和php正则表达式有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、PHP正则表
2023-06-29

js正则表达式和php正则表达式有什么区别

区别:1、PHP正则表达式支持“(?<!”和“(?<=”断言,而js正则表达式不支持;2、PHP正则表达式支持子组“(?R)”,而js正则表达式不支持;3、PHP正则表达式支持本地编码,js只支持unicode。
2017-12-02

Ruby正则表达式与Perl有什么区别

这篇文章主要介绍Ruby正则表达式与Perl有什么区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Ruby语言虽然说是一种比较新的编程语言,但是它还是和其他语言有不少的相似之处。比如在Ruby正则表达式方面,就和P
2023-06-17

Python中的正则表达式

正则表达式 是包含文本和特殊字符的字符串, 为高级的文本模式匹配, 抽取, 与文本形式的搜索和替换功能提供了基础Python通过标准库re模块来支持正则表达式模式匹配的两种方法完成匹配(模式匹配)搜索(search())匹配(match()
2023-01-31

在python正则表达式中是怎样正确使用正则表达式

这篇文章将为大家详细讲解有关在python正则表达式中是怎样正确使用正则表达式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在我们已经看了一些简单的正则表达式,那么我们实际在 Python
2023-06-17

Python中使用正则表达式及正则表达式匹配规则详解

这篇文章主要介绍了Python中使用正则表达式以及正则表达式匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-22

Linux中的特殊符号与正则表达式

第1章 linux的特殊符号 1.1 通配符 * {} 1.1.1 含义 方便查找文件 通配符是用来找文件名字的。 1.1.2 * 通过find 命令找以 .sh 结尾的文件,使用*替代文件名字。find /oldboy -type f
2022-06-04

MySQL通配符与正则表达式

通配符通配符必须全文匹配时才为真,使用LIKE关键字字符示例含义_"a_b"任意一个字符"axb",其中x可以使任意字符,包括汉字%"%a"任意一个以a结尾的字符串正则表达式字符串str中有任意一个子串能匹配正则表达式,则结果为真。使用REGEXP或RLIKE
MySQL通配符与正则表达式
2015-10-28

只能输入正整数的正则表达式及常用的正则表达式

只能输入正整数的正则表达式:^[1-9]\d*$常用的正则表达式:1. 匹配手机号码:^[1][3,4,5,7,8,9]\d{9}$2. 匹配邮箱地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
2023-08-16

Java中正则表达式的使用

正则表达式 什么是正则表达式 Regular Expression , 正则表达式, ⼀种使⽤表达式的⽅式对字符串 进⾏匹配的语法规则由一组持有特殊含义的字符串组成,通常用于匹配和替换文本正则的优点: 速度快, 效率⾼, 准确性⾼正则的缺点
2023-08-17

JavaScript中的正则表达式(2) (转)

JavaScript中的正则表达式(2) (转)[@more@]正则表达式对象的属性及方法   预定义的正则表达式拥有有以下静态属性:input, multiline, lastMatch, lastParen, leftContext,
2023-06-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录