正则表达式里的?:是啥意思例如(?:a|b)

作者&投稿:宿步 (若有异议请与网页底部的电邮联系)
正则表达式里的?:是啥意思例如(?:a|b)~

我也是找答案时看到的,发现这里回答的理论是的,但不好让人理解,我也结合其他地方的资料,才能理解他的答案。下面我用两个例子来说明 单引号里面的三个元字符之间的意思 ‘ () ' '\1' '?:' 其实我自己也是加深一下这块的印象
在一段英文里,我们需要匹配连续重复的单词,如 I'm lost lost. 这里发现lost重复了,当内容很多时
我们就用正则来 \b(\w+)\b\s+\1\b 来找这样连续重复单词
正则规则解释
\b匹配单词的开始
(\w+)匹配单词并存储一份单词 当后面有反向引用时 则可以调用这个存储的单词
\b匹配单词的结束
\s+一个或多个空格
\1这个是反向引用 引用前面括号里存储的单词 也就是 \w+
\b单词结束
了解了前面的 这时如果把?:加进去
\b(?:\w+)\b\s+\1\b
这个表达式就无效了 因为(?:\w) 这个单词虽可以被匹配但不会存储一份 后面出现的 \1 也不会调用前面括号里的单词 所以 表达式就失效了
那么(?:)有什么用呢
再举例简单说明一下
想在一篇文章中找"program"和"project"这两个单词
正则表达式可表示为 program|project
也可表示为 pro(gram|ject)
但用了()就表示会匹配括号里存在的内容且存储一份
用 | 隔开了 也就是说 gram和ject 都被存储了一份 但这样存储的内容是无意义的
所以表达式写成这样 pro(?:gram|ject)
一是显得比较简洁
二是不会存储无意义的内容

意思是:匹配1到10个英文字母(大小写不限),还有,号。
如果是匹配1-10个不限大小写的英文字母,正则表达式应该为:[a-zA-Z]{1,10}

  1. 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

  2. 这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。

  3. .+?表示最小匹配

  4. 举例说明.+?与.+的区别

  5. <a href="xxx"><span>

  6. 如果用<.+>匹配,则匹配结果是

  7. <a href="xxx"><span>

  8. 如果用<.+?>匹配,则匹配结果是

  9. <a href="xxx">

  10. 也就是.+?只要匹配就返回了,不会再接着往下找了




请问正则表达式([^^]*?)是什么意思?
\/\\{\\{(.+?)\\}\\}\/g 最前面的“\/”与最后面的“\/”是分隔符,表示正则表达式的开始与结束。最后的“g”标志则表示正则表达式使用的global(全局)的状态。使用 global 标志表明在被查找的字符串中搜索操作将查找所有符合的项,而不仅仅是第一个。这也被称为全局匹配。【相关的标志还有i(...

c++中的?是什么意思.还有:是啥
C++中,“?”与“:”共同组成三目条件运算符(?:)三目条件运算符(?:)使用例子如下:x ? y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子为从两个数中找出较大的程序:int a=3,...

#define max(a,b) a>b?a:b中的?和:分别是什么意思啊
#define max(a,b) a>b?a:b 中的?和:是三目运算符的固定格式,意思是:条件 ? 结果1 : 结果2 里面的?号是格式要求,也可以理解为条件是否成立,条件成立为结果1,否则为结果2。对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;...

正则表达式里边<.+?>什么意思
详情请查看视频回答

关于C语言?:运算符的用法
a?b:c这个是条件表达式,也称三目运算符,表示如果a为真,则表达式值为b,如果a为假,则表达式值为c。条件表达式语法举例说明如下:if(a>b) {max=a} ; else {max=b};可用条件表达式写为 max=(a>b)?a:b;执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。

c语言中" : "(冒号)和问号是什么意思
bool a = 1>3?false:true;?: 是三元运算符由条件运算符组成的条件表达式的一般形式为:表达式1 ? 表达式 2 : 表达式3,其中表达式 1、表达式2、表达式3,既可以是一个简单的表达式,又可以是由各种运算符组成的复合表达式。计算过程很好理解:先求表达式1的值, 如果为真, 则求表达式2 的值并把它...

Python三元运算能套多少层?
三元运算符是什么三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。使用这个算法可以使调用数据时逐级筛选。表达式:“()?:”。如名字表示的三元运算符需要三个操作数。语法为:条件表达式?表达式1:表达式2。说明:问号前面的位置是判断的条件,判断结果为bool型,为...

正则表达式 (.*) .* 就是这2种写法,有什么却别?分别代表什么含义?_百度...
然后正则表达式中的“\\1”表示对前面匹配的组“([A-Z][A-Z0-9]*)”进行引用,在本例中,被引用的是标签名“B”。所以需要被匹配的结尾标签为“<\/B>”你可以对相同的后向引用组进行多次引用,<<([a-c])x\\1x\\1>>将匹配“axaxa”、“bxbxb”以及“cxcxc”。如果用数字形式引用的组没...

java中的?和:是什么运算符还是什么意思?
这是JAVA的三元运算符,其实就是相当于一个if-then-else语句,就是判断一个条件是否成立,如果成立则执行一条语句,如果不成立则执行别一个语句

C语言里的?号是做什么用的
属于条件运算符 语法:e1?e2:e3 若e1为真(非0),则此表达式值为e2的值; 若为假,则表达式的值为e3 相当于 if(e1)e2;else e3;例如:y=x>0?x:-x;即x>0时y=x;否则y=-x;其实就是求绝对值。

城北区17310005820: 正则表达式中的"\."表示什么意思 -
帅甄安体: 正则表达式中的"\."表示什么意思?\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符. . 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root.\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.

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

城北区17310005820: 正则表达式中的/是什么意思 -
帅甄安体: /是正则表达式分界符,两个/里面的内容是正则表达式,而后面的i说明忽略大小写.另外,不是/b,而是\b才是单词分界符.

城北区17310005820: 正则表达式 "^[0 - 9]+$"是什么意思呢? -
帅甄安体:[答案] 字符/意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释.例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示匹配一个单词的分界线.或者:对于几个字符,通常...

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

城北区17310005820: 正则表达式<*>什么意思 -
帅甄安体: 点 匹配任何单个字符.例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root. * 匹配0或多个正好在它之前的那个字符.例如正则表达式.*意味着能够匹配任意数量的任何字符. ? 匹配0或1个正好在它之前的那个字符.注意:这个元字符不是所有的软件都支持的.

城北区17310005820: 正则表达式中 \Z到底是什么意思 -
帅甄安体: 正则表达式中的\意思是将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符. 例如, 'n' 匹配字符 'n'.'\n' 匹配换行符.序列 '\\' 匹配 “\”,而 '\(' 则匹配 “(”. 正则表达式(regular expression)描述...

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

城北区17310005820: 正则表达式\.中的\代表着什么含义,是转义吗? -
帅甄安体: 是转义,本身在正则中 '.' 代表除换行外所有的字符 现在加个\ 表示 仅仅只表示原本的点

城北区17310005820: 这个正则表达式是什么意思额?/^(http:\/\/)?([^\/]+)/i -
帅甄安体: ”^(http:\/\/)? “表示以http://开头.”?([^\/]+) “ 表示后面紧跟多个非 / 的字符.其中的”?“表示后面的([^\/]+) 可有可无,即可出现0~1次.”/i “表示对大小写不敏感,即忽略大小写.合起来的意思就是:匹配一个以http://开头,后面紧跟...

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