正则表达式里边<.+?>什么意思

作者&投稿:常凤 (若有异议请与网页底部的电邮联系)
"?:"在正则表达式中什么意思~

“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。
单独的“?”:匹配前面的子表达式零次或一次。
当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。

扩展资料
正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
参考资料来源:百度百科:正则表达式

*——表示匹配前面的字符0个或多个
+——表示前面的字符1个或多个
?——(1)放在其他字符后面表示前面的字符可以有,也可以没有
(2)放在*、+后面表示匹配尽可能少的字符
例如:字符串fooooo,正则fo*和fo+会匹配整个字符串,
fo+? 匹配fo,
fo*? 匹配f
*+没有这样的用法,除非是匹配星号本身,即: \*+ 表示一个或多个星号



正则表达式里边<.+?>表示匹配:“<”开始,其后至少含有1个除了“>”的任意字符,且再遇到“>”,就结束匹配。

< 表示:匹配字符“<”。

+ 表示:匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。

* 表示:匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。

? 表示:匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。

> 表示:匹配字符“>”。

例如:对“<><b>”的字符串进行正则模式<.+?>匹配,输入为:<><b>。

扩展资料:

正则表达式其它常见模式:

1、只能输入m~n位的数字:"^\d{m,n}$"。

2、只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

3、只能输入有两位小数的正实数:"^[0-9]+(\.[0-9]{2})?$"。

4、只能输入有1~3位小数的正实数:"^[0-9]+(\.[0-9]{1,3})?$"。

5、只能输入非零的正整数:"^\+?[1-9][0-9]*$"。

6、只能输入非零的负整数:"^\-[1-9][0-9]*$"。

7、只能输入长度为3的字符:"^.{3}$"。

8、只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

9、只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

10、只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

参考资料来源:百度百科-正则表达式



【简单回答】

正则表达式的本身规则解释:

  • <.+?>

    • <:最开始的普通字符 小于号

      • .+?

      • 包含2部分:

        • .+

          • . 点:表示任意字符

          • + 加号:表示一个或更多个,即 >=1

        • ? 问号:表示

          • 如果前面是单个字符,则表示0或1个,即有有或没有

          • 如果前面是连续匹配的多个字符,则表示匹配到的个数尽可能少

      • 含义解析: .+表示任何字符,个数上是 >=1,加上?表示个数尽可能的少

    • >:最末尾的普通字符 大于号


综合起来就是,去匹配这种字符串:

小于号开头的,中间是 任意字符都可以,但是个数要1个或更多个,但是要尽量少,最后以大于号结束的


网上帮你找了些容易帮你你理解和学习的东西

(1)最推荐:正则图形化

Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.

https://www.debuggex.com


(2)其次推荐:正则中每一个字符都详细解释对应含义

RegExr: Learn, Build, & Test RegEx

https://regexr.com


(3)普通推荐:用高亮显示显示匹配上的内容

JavaScript正则在线测试工具 - 正则表达式工具 - 脚本之家在线工具

http://tools.jb51.net/regex/javascript



【后记】

借鉴到别人的回答,才注意到:

很明显你的正则:

<.+?>

常用于匹配:HTML源码类的文本

比如:

<div class="dl-nav"><a class="dl-nav-item item-cloud"><a class

其只能匹配

<div class="dl-nav">

如图: 

而如果不加?问号的规则:

<.+>

意思是:

<开头的,>结尾的,中间是任意字符,且尽量多的

也就说明中间字符也可能包含 >大于号了

所以可以匹配到,此处的尽量多个字符:

<div class="dl-nav"><a class="dl-nav-item item-cloud">

如图:



【详细解释】

见我专门为你写的帖子:

【问题解答】正则表达式里边<.+?>什么意思



一、*表示匹配前面的字符0个或多个

二、+表示前面的字符1个或多个

三、?表示放在其他字符后面表示前面的字符可以有,也可以没有,或者放在*、+后面表示匹配尽可能少的字符

例如:字符串fooooo,正则fo*和fo+会匹配整个字符串,

fo+? 匹配fo,

fo*? 匹配f

四、*+没有这样的用法,除非是匹配星号本身,即: \*+ 表示一个或多个星号

扩展资料:

正则表达式符号

\:

将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\
”匹配
。“
”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。

^:

匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配“
”或“”之后的位置。

$:

匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配“
”或“”之前的位置。

参考资料来源:百度百科-正则表达式



.+?表示最小匹配
举例说明.+?与.+的区别
<a href="xxx"><span>
如果用<.+>匹配,则匹配结果是
<a href="xxx"><span>
如果用<.+?>匹配,则匹配结果是
<a href="xxx">
也就是.+?只要匹配就返回了,不会再接着往下找了


若定义:float x,*p=&x;则下列表达式中错误的是 A,*&p B,*&x C,&*p...
首先对于A和C选项对指针变量分别取地址再取地址中的量和先取地址中的量再取地址,这两种表达式都是没有错位的.然后对于B,先取浮点型变量x的地址再取地址中的值,表达式结果就是x,而D选项,因为表达式是右结合的,所以首先x与*结合,*x,而x是一个浮点型变量而不是地址值,所以不能在前面加*来取存在...

设x=5,y=7,则表达式”x+=(int)x+y--“的值为多少
x的结果为17,表达式的结果是12。表达式可以这样理解:首先,将x转为int类型,然后加上y,最后y自减1。在这里你可能会问,为什么y不先自减再参与计算?因为y--是后缀的自减运算,要先参与运算算完才能自减。如果是前缀自减比如--y,那就先自减再参与计算。

设有条件表达式:(exp)?i++:j--,则以下表达式中(exp)完全等价的是: A...
A和B 是一样的,举个例子:int exp=0xff;int x=(!exp==0)?1:2;int y=(exp!=0)?1:2;结果 x,y 都是1 1。 !exp 变成false, 既是0,0==0结果是 true 2。 exp 是true, 既是1,1!=0 结果也是 true

求一则正则表达式
]*>([^<]*)

若a是int型变量,则下列表达式的值为___。
26 括号表达式的值等于最后一个算术的值即等于a+6,而a=4*5 =20,a+6=26 若a是int型变量,则表达式(a=4*5,a*2),a+6的值为_ 26 此表达式(a=4*5,a*2)的值为40,a=4*5是赋值语句 ,a=20 若a是int型变量,则表达式(a=4*5,a--,++a),a+6的值为___ 首先a=4*5,...

JS用正则表达式实现4则元算。形如:48.5*12=
你改成这样试一下:var tst=\/([0-9]+\\.?[0-9]*)([\\*|\\+|\\-|\\\/])([0-9]+\\.?[0-9]*)\\=\/gi;

...a[5],*b=a,(*c)[3],*d[3];",则以下表达式中有语法错误的是(_百度知 ...
C是错的,(*c)[3] 的意思就是,一个元素为int指针的数组。所以c[0]就是一个指向3个元素的指针 应该是(*c)[0][0]

10 若有条件表达式,(exp)?a++:b--,则以下表达式中能完全等价于表达式(e...
首先你要知道(exp)?a++:b--表示的是什么意思,这段代码是if...else...的缩写方式,可以看成以下代码:if (exp) { a++;} else{ b--;} 不论(exp)如何,都将运行某一个函数,所以等价于exp==1,exp 值永远为真。

cher ch=c则以下表达式ch等于括号里4x大于等于ab xc小于等于z括号括号x...
(4x4)+(3x3)(> )2x3x4 (-3)x(-3)+1x1(> )2x(-3)x1 (-2)x(-2)+(-2)x(-2)( =)2x(-2)x(-2)通过观察归纳,反映这一规律的一般结论:a²+b²>=2ab,(当且仅当a=b时取等号)|m-2|+【(n+3)x(n+3)】=0,因为:|m-2|>=0,(n+3)...

若有定义语句int a=12,则执行表达式a+=a-=a+a后a的值为多少?
若有定义语句int a=12,则执行表达式a+=a-=a+a后a的值为-24。计算过程:a+=a-=a+a,运算符和结合性,由运算符优先级,+优先级为4,-=和+=优先级为14,+结合方向从左至右,+=和-+从右至左。所以:先计算 (a+a),a=12,a+a=12+12=24,再计算 a-=(a+a),即a=a-(a+a)=...

柘荣县13875077433: 正则表达式里边<.+?>什么意思 -
旁翟西其: 正则表达式里边<.+?>表示匹配:“<”开始,其后至少含有1个除了“>”的任意字符,且再遇到“>”,就结束匹配.< 表示:匹配字符“<”. + 表示:匹配前面的子表达式一次或多次(大于等于1次).例如,“zo+”能匹配“zo”以及“...

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

柘荣县13875077433: 正则表达式中 +*? 表示什么? -
旁翟西其: + 一个或者一个以上的匹配 * 零个或者零个以上的匹配 ? 零个或者一个匹配

柘荣县13875077433: 正则表达式 "^+$"是什么意思 -
旁翟西其: ^+$分别表示:1、^:匹配输入字符串的开始位置.2、+:匹配前面的子表达式一次或多次(大于等于1次).3、$:匹配输入字符串的结束位置.正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex、regexp...

柘荣县13875077433: 正则表达式的.*?是什么意思 和() -
旁翟西其: "."是表示匹配所有character:(Dot.) In the default mode, this matches any character except a newline. If the DOTALL flag has been specified, this matches any character including a newline. "*"是表示匹配0个或者多个 Causes the resulting RE to...

柘荣县13875077433: 正则表达式([^"]+)是什么意思 -
旁翟西其: ([^"]+)()括号是分组用,在这个表达式里没有作用 [^"]意思是不包含"这个字符+意思是至少一个或多个 总体意思:不包含"的任意字符,字符个数不限,但至少一个字符

柘荣县13875077433: 正则表达式问题求解,谢谢
旁翟西其: 这个正则可以匹配"今天你们有110次机会叫我哥哥"之类的字符串.基本用到的语法如下: 1.\d 匹配一个数字;等价于[0-9] 2.{2,3} 表示至少出现2次,至多出现3次(3&gt;=2) 3.(哥哥|姐姐) 可以匹配"哥哥",或者匹配"姐姐",一定要匹配...

柘荣县13875077433: 正则表达式 ([^<]+) 这个是什么意思? 谢啦. -
旁翟西其: 匹配不包含

柘荣县13875077433: java中正则表达式中的^和$有什么用,给我举个例,谢谢大神们 -
旁翟西其: 比如有正则表达式如下:"\d+"和"^\d+" 那么字符串"a123456789"匹配第一个正则表达式是能匹配通过的,但是第二个就不行 ^符号在正则表达式第一位出现表示的是强匹配开头,也就是必须是\d+开头的字符串才能匹配通过,中间一部分符合\d+规则的匹配不通过,$同理,是强结束匹配用的

柘荣县13875077433: 正则表达式<a[^>]+> -
旁翟西其: [^>]中的>就是一个普通字符'>', 它不是正则里的标识符'<a' 纯字符 [^>]+ 不是>的字符重复一次到多次> 纯字符

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