正则表达式中-? 和.-?这两者有什么区别?请举例解释一下,谢谢!

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

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

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

1、-?
-?能匹配一个-或者空值(0个-)
在这里的英文杠-没有特殊的含义,他就代表他本身,这里就是他本意。

在这里英文?代表重复次数0次或一次,?前面必须有一个能代表具体字符的表达式,这里是字符本身-。-?也就是匹配-1次或0次。

?如果在+*{}后面,代表取最短匹配,书面语言叫做非贪婪匹配,这时候没有?,是就是贪婪匹配,就会匹配最长的值。

2、.-?
能匹配任意一个字符加一个-或者0个-
在这里英文点没有在方括号[]里,就是代表除换行\n、回车\t以外的任意字符,可以是空格。否则代表.本身。
-本身不代表次数,所有.只匹配一个字符


北碚区19136326872: 正则表达式中 - ? 和.-?这两者有什么区别?请举例解释一下,谢谢!_
爱新觉罗严苯磺: 1、-?-?能匹配一个-或者空值(0个-) 在这里的英文杠-没有特殊的含义,他就代表他本身,这里就是他本意.在这里英文?代表重复次数0次或一次,?前面必须有一个能代表具体字符的表达式,这里是字符本身-.-?也就是匹配-1次或0次.?如果在+*{}后面,代表取最短匹配,书面语言叫做非贪婪匹配,这时候没有?,是就是贪婪匹配,就会匹配最长的值.2、.-?能匹配任意一个字符加一个-或者0个- 在这里英文点没有在方括号[]里,就是代表除换行\n、回车\t以外的任意字符,可以是空格.否则代表.本身.-本身不代表次数,所有.只匹配一个字符

北碚区19136326872: 正则表达式中 ' - ' 和 [ - ],有什么区别? -
爱新觉罗严苯磺: 最基本的意思:小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次 但是括号里变加上其他字符就有不同意思 详细介绍 例如: {n} n是一个非负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o. {n,} n是一个非负整数.至少匹配n次.例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o.“o{1,}”等价于“o+”.“o{0,}”则等价于“o*”. {n,m} m和n均为非负整数,其中n

北碚区19136326872: 正则表达式 \s*和\s*? 具体有什么区别?求认真解答 thanks -
爱新觉罗严苯磺: 一、两种表达方式表达意义的区别: 1、\s代表正则表达式中的一个空白字符(可能是空格、制表符、其他空白). 2、\\s代表字符\和字符s,因为\在正则中有特殊意义,所有需要转义,写成了\\ . 二、表达的作用的区别: 1、\s用于匹配空白字...

北碚区19136326872: 正则表达式([^\[\<]+?])和([^\["\']+?)是什么意思啊? -
爱新觉罗严苯磺: /\{\{(.+?)\}\}/g 最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束.最后的“g”标志则表示正则表达式使用的global(全局)的状态.使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一...

北碚区19136326872: '~ - ([a - z])~'这是什么正则表达式~代表什么??? -
爱新觉罗严苯磺: echo preg_replace_callback('~-([a-z])~', function ($match) { return strtoupper($match[1]); }, 'hello-world');// 输出 helloWorld你是从php文档里面的这个例子看到的吧.~-([a-z])~ 两个~是分隔符,不会匹配具体字符串的.这个正则表达式的意思是:...

北碚区19136326872: 在正则表达式中“/”和“\”符号的区别! -
爱新觉罗严苯磺: /一般用于 正则的开始和结束,中途要使用/就得用\符号来转义了,比如 ereg_replace ( '/<img .*\/>/' , '' , $html);

北碚区19136326872: 在JS的正则表达式里面^和$是在什么情况下用? -
爱新觉罗严苯磺: 什么情况下用,那就看自己的需求.一般来说,正则中的^表示开头,$表示结束. 这两个都是零宽度字符(其实不是字符,只是位置,类似的还有\A,\Z,\B,\b). ^\d匹配字符串开头位置的一位数字.\d$匹配字符串结尾位置的一位数字. /^\d/ 匹配以数字开始的字符串,如:123acb; /\d$/ 匹配以数字结尾的字符串,如:abc123; /^\d$/ 匹配从开始到结束都是数字的字符串,如:123456.

北碚区19136326872: 正则表达式中的()和[]有什么区别 -
爱新觉罗严苯磺: \w表示匹配数字、字母、和下划线的一个字符,\w和[\w]没有任何区别 (\w)表示分组,会将捕获到的字符记录下来,可以再拿出来使用 例如\w[a-z]表示能匹配一个西瓜,\w能匹配西瓜皮,[a-z]能匹配西瓜瓤,两个组起来匹配西瓜,如果这时候你想不仅找出这个西瓜,而且要使用西瓜皮和西瓜瓤的内容,那么你就需要括号来捕获分组,(\w)([a-z]),通过$1就可以拿出西瓜皮,通过$2就可以拿出西瓜瓤,当然是要配合编程语句来使用的,如java 等,希望你能理解

北碚区19136326872: Python 正则表达式 r"(?<=<h1>).+?(?=<h1>)"中?<=和?=是什么意思 -
爱新觉罗严苯磺: (?<=<h1>) 表示在此后的正则中,前面要匹配<h1> (?=<h1>) 表示在此前的正则中,后面要匹配<h1> 这两个表达式表示的是条件,不是实际匹配正则的一部分

北碚区19136326872: 在正则表达式中\\s和\s有什么区别? -
爱新觉罗严苯磺: 正则表达式中 \s代表一个空白字符(可能是空格、制表符、其他空白) \\s代表查找两个字符\和s,因为\在正则中有特殊意义,所有需要转义,写成了\\

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