正则表达式中 .*? 代表什么?

作者&投稿:歹急 (若有异议请与网页底部的电邮联系)
正则表达式里面 .* 和 .*? 有什么区别?~

表达式 .* 就是单个字符匹配任意次,即贪婪匹配。 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配.
\s 匹配任何空白非打印字符,包括空格、制表符、换页符等等。等价于 [ \f
\v]。注意 Unicode 正则表达式会匹配全角空格符。
\S 匹配任何非空白非打印字符。等价于 [^ \f
\v]。
*限定符是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
比如:Chapter 1 - 介绍正则表达式
使用//匹配的结果为:H1>Chapter 1 - 介绍正则表达式</H1。
使用//匹配结果为:H1。
拓展知识
正则表达式特殊字符及其含义



解答:

点代表的是任意字符。
* 代表的是取 0 至 无限长度
问号代表的是非贪婪模式。
三个链接在一起是取尽量少的任意字符,一般不会这么单独写。

用法:

他大多用在:.*?a

解释:

就是取前面任意长度的字符,到底一个 a 出现,匹配如下q@wer_qwerqweraljlkjlkjlkj,

得到:q@wer_qwerqwera  这部分,如果匹配不到后面的 a 字符,则匹配为空。



点 是任意字符
* 是取 0 至 无限长度
问号 是非贪婪模式。
何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:
.*?a

就是取前面任意长度的字符,到底一个 a 出现,匹配如下
q@wer_qwerqweraljlkjlkjlkj
得到:q@wer_qwerqwera 这部分,如果匹配不到后面的 a 字符,则匹配为空。

.是除了\n的任意字符
*是取之前字符的0个或者n个
?是去之前字符的0个或者1个;也可以解释为非贪婪模式

这三个组合在一起的含义就是 :0个或者任意个不是\n的任意字符(非贪婪模式,发现一个就立即匹配结束)


安图县17281075340: 正则表达式中的 *?或 *+ 是什么意思 -
智胞噻托: *——表示匹配前面的字符0个或多个 +——表示前面的字符1个或多个 ?——(1)放在其他字符后面表示前面的字符可以有,也可以没有 (2)放在*、+后面表示匹配尽可能少的字符 例如:字符串fooooo,正则fo*和fo+会匹配整个字符串, fo+? 匹配fo, fo*? 匹配f *+没有这样的用法,除非是匹配星号本身,即: \*+ 表示一个或多个星号

安图县17281075340: 正则表达式中.*是什么意思 -
智胞噻托: *是通配符的一种,表示任意多个字符,.*则表示后缀名为任意的文件即所有文件. 希望可以帮到您.

安图县17281075340: 正则里的(.*?)是什么意思 -
智胞噻托: . 是任意字符 可以匹配任何单个字符,例子:正则表达式r.t 可以匹配这些字符串:rat、rut、r t,但是不匹配root. .*? 表示匹配任意字符到下一个符合条件的字符 例子:正则表达式a.*?xxx 可以匹配 abxxx axxxxx abbbbbxxx 扩展资料:* 匹配0或多...

安图县17281075340: 正则表达式中 .*? 代表什么? -
智胞噻托: 点 是任意字符* 是取 0 至 无限长度 问号 是非贪婪模式.何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?a 就是取前面任意长度的字符,到底一个 a 出现,匹配如下 q@wer_qwerqweraljlkjlkjlkj 得到:q@wer_qwerqwera 这部分,如果匹配不到后面的 a 字符,则匹配为空.

安图县17281075340: python 正则表达式.*? 是什么意思 详细解释 -
智胞噻托: 分开来说: 1、. 匹配任意除换行符“\n”外的字符; 2、*表示匹配前一个字符0次或无限次;3、+或*后跟?表示非贪婪匹配,即尽可能少的匹配,如*?重复任意次,但尽可能少重复; 4、 .*? 表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复. 如:a.*?b匹配最短的,以a开始,以b结束的字符串.如果把它应用于aabab的话,它会匹配aab和ab.

安图县17281075340: 正则表达式 .*? 是什么意思啊? -
智胞噻托: 表达式 .* 就是单个字符匹配任意次,即贪婪匹配. 表达式 .*? 是满足条件的情况只匹配一次,即最小匹配. 举例介绍: 如:<img src="test.jpg" width="60px" height="80px"/> 懒惰模式正则: src=".*?" 结果:src="test.jpg" 扩展资...

安图县17281075340: python正则表达式中.*是什么意思 -
智胞噻托: .表示任意字符,*表示重复0至多次,.*表示任意字符出现0到多次

安图县17281075340: 正则表达式中单独使用一个星号(*)表示什么意思 -
智胞噻托: *表示所有的,即一切都可匹配上. sed '/^*$/d' test^表示开头处, $表示结尾处, 二者合在一起'/^*$/d' 表示所有都在其范围内 ''表示界定范围,便于你引用.^*$表示一年所有的字符串,包括空

安图县17281075340: php 正则表达式中的 .*? 表示什么意思? -
智胞噻托: 是非贪婪模式 .*会匹配后面的一切字符,就是到结束的意思 加?后就是不贪婪模式,这时要看?后边的字符是什么了,如.*?"的意思是遇到双引号则匹配结束

安图县17281075340: 正则表达式中的 .*表示空和所有字符? -
智胞噻托: .表示任意字符.*点重复多次,这个多次中,可以是任意字符的组合,当然也可以表示一个单词

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网