2016 - 2024

感恩一路有你

正则表达式贪婪模式 正则表达式里面 .* 和 .*? 有什么区别?

浏览量:1182 时间:2021-03-13 03:02:25 作者:admin

正则表达式里面 .* 和 .*? 有什么区别?

表情。*任何时候都是单个字符匹配,即贪婪匹配。表达式。*? 满足条件时只匹配一次,即最小匹配。s匹配任何空白的非打印字符,包括空格、制表符、分页符等。相当于[fnRtv]。请注意,Unicode正则表达式匹配全宽空格字符。S匹配任何非空白、不可打印的字符。相当于[^fnRtv]。*限定符是贪婪的,因为它们匹配尽可能多的单词。只添加一个?之后可以实现非贪婪或最小匹配。例如:<h1>chapter1-引入正则表达式</H1>使用/<.*>/匹配的结果是:H1>chapter1-引入正则表达式</H1。使用/&Lt.*?>/,匹配结果为:H1。在Lua中,修饰符-和*用于0次或多次匹配前一个字符,但是-是最短匹配,类似于传统正则化中的非贪婪匹配,而*是最长匹配,即贪婪匹配。因为在正则化的最后一个之后没有任何东西,所以这是最短的匹配,也就是说,没有任何东西匹配,所以1999年没有被捕获。添加$后,由于结束标识符的原因,必须匹配-1999才能进行整个常规匹配过程,因此捕获1999。或者你可以用*替换最后一个-或者你可以捕获1999

首先,让我们来谈谈这些组件的基本含义:

W是匹配下划线,数字和字母

W是匹配所有不同于W

[]的字符

+表示至少匹配一个字符。表示任何字符。那么这样的组合,[ww]和似乎没有区别。它匹配任何字符,字符长度至少为1。

但是,有一点不同。它不能匹配空白,也就是说,如果文本段落中有空格、换行符、制表符等,则无法完成匹配,[ww]不存在这样的问题。

另外,我想给你一个小建议。这是贪婪的直接匹配。如果没有其他约束,最好添加一个?,表示非贪婪匹配。

正则表达式贪婪模式 java正则表达式非贪婪模式 pycharm中安装bs4

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。