首页 后端开发 php教程 解析正则表达式中最短匹配模式

解析正则表达式中最短匹配模式

Sep 21, 2017 am 11:52 AM
匹配 表达式

最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。下面这篇文章主要给大家介绍了关于正则表达式中最短匹配模式用法的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

最近有一次想用正则表达式从网页里面抓取一些东西出来,内容不复杂却出现不少问题。下面话不多说,来一起看看详细的介绍:

当我们用正则表达式去匹配一个标签的首尾的时候,比如匹配 <h1>hello world</h1> 中的 h1 的开始和闭合标签

可能很多人会这样写


/<.*h1>/g
登录后复制

但是这样真的可以吗?

因为 * 匹配符是匹配前面一个字符的零到多个,而且它是贪婪匹配的

所以你得到的就会是下面的结果了。


显然这并不是我们想要的,那么怎么把贪婪匹配换成最小匹配呢,


/<.*?h1>/g
登录后复制

上面的写法就可以了,如下图:


其实原理应该很简单,因为 ? 也是贪婪匹配,并且只能匹配0到1个,

所以它会匹配到第一个的时候就结束了,从而阻止了 * 的匹配多个的贪婪。

以上是解析正则表达式中最短匹配模式的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
Go语言正则表达式实践指南:如何匹配十六进制颜色代码 Go语言正则表达式实践指南:如何匹配十六进制颜色代码 Jul 13, 2023 am 10:46 AM

Go语言正则表达式实践指南:如何匹配十六进制颜色代码引言:正则表达式是一种强大且灵活的工具,用于字符串的模式匹配和查找。在Go语言中,我们可以使用内置的正则表达式包regexp来实现这些操作。本文将介绍如何使用正则表达式在Go语言中匹配十六进制颜色代码。导入正则表达式包首先,我们需要导入Go语言的正则表达式包regexp。可以在代码的开头添加如下导入语句:i

PHP字符串匹配技巧:避免模糊包含表达式 PHP字符串匹配技巧:避免模糊包含表达式 Feb 29, 2024 am 08:06 AM

PHP字符串匹配技巧:避免模糊包含表达式在PHP开发中,字符串匹配是一个常见的任务,通常用于查找特定的文本内容或验证输入的格式。然而,有时候我们需要避免使用模糊的包含表达式来确保匹配的准确性。本文将介绍一些在PHP中进行字符串匹配时避免模糊包含表达式的技巧,并提供具体的代码示例。使用preg_match()函数进行精确匹配在PHP中,可以使用preg_mat

PHP正则表达式实战:匹配字母和数字 PHP正则表达式实战:匹配字母和数字 Jun 22, 2023 pm 04:49 PM

PHP正则表达式实战:匹配字母和数字正则表达式是一种用于匹配字符串的工具,可以方便地实现字符串的搜索、替换、分割等操作。在PHP开发中,正则表达式也是一个非常有用的工具。本文将介绍如何使用PHP正则表达式来匹配字母和数字。匹配单个字符要匹配单个字符,可以使用正则表达式中的字符类。字符类用方括号[]表示,其中的字符表示可以被匹配的字符,可以使用连字符-表示范围

PHP正则表达式:精确匹配与排除模糊包含 PHP正则表达式:精确匹配与排除模糊包含 Feb 28, 2024 pm 01:03 PM

PHP正则表达式:精确匹配与排除模糊包含正则表达式是一种强大的文本匹配工具,能够帮助程序员在处理文本时进行高效的搜索、替换和筛选。在PHP中,正则表达式也被广泛应用于字符串处理和数据匹配中。本文将重点介绍在PHP中如何进行精确匹配和排除模糊包含的操作,同时结合具体的代码示例进行说明。精确匹配精确匹配意味着只匹配符合完全条件的字符串,不匹配任何变种或包含额外字

绝地潜兵2怎么匹配 绝地潜兵2怎么匹配 Feb 27, 2024 pm 08:43 PM

绝地潜兵2是一款拥有高质量大作玩法打造的第三人称的射击游戏,拥有大量精彩的玩法可让小伙伴去探索联机射击战斗的操作趣味,游戏中的联机模式是可以匹配的,一些玩家还不清楚该如何去操作匹配,本期为大家分享匹配的步骤!绝地潜兵2匹配操作教程答:在星球界面点击快速匹配。绝地潜兵2匹配方法绝地潜兵2的快速匹配是一个很不错的功能,能帮玩家找到一起匹配的队友,共同进入一场任务,相互配合获取更高的任务评价。匹配的选项在星球界面,在找任务或者看公开房间的时候,下方会有一个快速匹配,点击就能开始匹配。如果玩家打开了跨平

PHP 正则表达式:如何匹配 HTML 中的所有 textarea 标签 PHP 正则表达式:如何匹配 HTML 中的所有 textarea 标签 Jun 22, 2023 pm 09:27 PM

HTML是一种常用的页面标记语言,用于在网页中展示内容。在HTML中,textarea标签被用于创建文本框,允许用户输入或编辑文本。当你需要从页面中提取所有的textarea标签及其内容时,PHP正则表达式可以提供一个简单有效的解决方案。在本文中,我们将学习如何使用PHP正则表达式匹配HTML中的所有textarea标签。理解正则表

Java中的类型不匹配——java.lang.ClassCastException Java中的类型不匹配——java.lang.ClassCastException Jun 24, 2023 pm 09:30 PM

Java作为一门强类型语言,在编译时就要求变量的类型必须明确确定下来,这在一定程度上保证了程序的安全性。但是有时候,在运行时,我们可能会遇到类型转换异常——java.lang.ClassCastException,这种异常会在Java程序中出现,当程序试图将一个对象转换为一个不兼容的类型时,就会抛出该异常。Java.lang.ClassCastExcepti

如何解决Python的表达式语法错误? 如何解决Python的表达式语法错误? Jun 24, 2023 pm 05:04 PM

Python作为一种高级编程语言,易于学习和使用。一旦需要编写Python程序时,无法避免地遇到语法错误,表达式语法错误是常见的一种。在本文中,我们将讨论如何解决Python的表达式语法错误。表达式语法错误是Python中最常见的错误之一,它通常是由于错误的使用语法或缺少必要组件而导致的。在Python中,表达式通常由数字、字符串、变量和运算符组成。最常见的

See all articles