我也是找答案时看到的,发现这里回答的理论是的,但不好让人理解,我也结合其他地方的资料,才能理解他的答案。下面我用两个例子来说明 单引号里面的三个元字符之间的意思 ‘ () ' '\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)
一是显得比较简洁
二是不会存储无意义的内容

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

  1. 正则表达式里转义字符_五分钟搞定正则表达式,如果没搞定,再加两分钟

    五分钟搞定正则表达式,如果没搞定,再加两分钟 [这是 ZY 第 18 篇原创文章] 文章概览 一.正则表达式介绍 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简 ...

  2. 正则表达式里“-“中划线的使用注意

    正则表达式里"-"中划线的使用注意 今天要匹配正则表达式,把非法的字符找出来,开始的写法是这个 [^A-Za-z0-9_.*-+%!],我的目的是把_.*-+%!这7个字符算合法字 ...

  3. oracle正则表达式包含但不含_正则表达式里字符串”不包含”匹配技巧 - 穿梭于偶然...

    经常我们会遇到想找出不包含某个字符串的文本,程序员最容易想到的是在 事实上,说正则表达式里不支持逆向匹配并不是百分之百的正确.就像这个问题,我们就可以使用否定式查找来模拟出逆向匹配,从而解决我们的问题 ...

  4. 藏在正则表达式里的陷阱

    2019独角兽企业重金招聘Python工程师标准>>> 前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%.通过 Java ...

  5. Python 正则表达式里的单行s和多行m模式

    Python 的 re 模块内置函数几乎都有一个 flags参数,规定了正则匹配时的各种策略模式,其中有两个模式:单行(re.DOTALL, 或者re.S)和多行(re.MULTILINE,或者re. ...

  6. python多行字符串变单行_Python 正则表达式里的单行s和多行m模式

    Python 的 re 模块内置函数几乎都有一个 flags 参数,规定了正则匹配时的各种策略模式,其中有两个模式:单行(re.DOTALL, 或者re.S)和多行(re.MULTILINE, 或者r ...

  7. php正则屏蔽问号,正则表达式里问号的作用

    正则表达式一直是我的弱项,一来因为用的比较少,所以每次碰到的时候,脑子里的两个小人儿就开始吵架:"又碰到了,又不会了,赶紧学习一下吧.""不会也没什么,不经常用,再说sp ...

  8. 关于正则表达式里含有空格的问题

    做C++某个项目的时候,用到了正则表达式,当我想表达全是数字的时候,我的变量设置是这样的: regex reg("^[1-9][0-9] * $"); 判断时总是不能通过. 后面机 ...

  9. 如何在正则表达式里表达可能存在也可能不存在的内容?

    开始 其实很简单, 在正则里将一些不确定的内容用括号包裹起来,再后面再加一对花括号即可. 看例子: start 1:hello 2:my 3:world end start 1:we 3:are 4: ...

最新文章

  1. delete后加 limit是个好习惯么 !
  2. 详解PyTorch编译并调用自定义CUDA算子的三种方式
  3. iOS架构-静态库.a 和.framework的区别(0)
  4. kettle 脚本 java_Kettle 执行SQL脚本
  5. python bind_Python bind-允许同时按下多个键
  6. 1176: C语言实验题――数组逆序
  7. CCF201709-1 打酱油
  8. 【汇编优化】之CPUID获取x86处理器信息
  9. unity打开摄像头
  10. Android实现计算器布局(表格布局)
  11. vba正则表达式入门
  12. Python海龟库write方法中形参font用法的记录
  13. 华为服务器系统图标,监控服务器图标
  14. Chrome启动参数最全集合
  15. 介绍我国计算机的发展的作文600字,五年级描写电脑的说明作文600字
  16. VOLATILE和队列
  17. 冷冻水和冷却水的区别
  18. Android WebView支持文件下载之调起浏览器下载(Java与Kotlin版)
  19. 【Linux】/etc/issue、/etc/issue.net和/etc/motd的区别
  20. Remoting学习

热门文章

  1. Swift 5新特性详解:ABI 稳定终于来了!
  2. webpack4升级指南
  3. VBS的开发利器---WMI信息绑定参考地址
  4. -1-3 java集合框架基础 java集合体系结构 Collection 常用java集合框架 如何选择集合 迭代器 泛型 通配符概念 Properties 集合 迭代器...
  5. 请问这样写法,第二个container的内容怎么没有显示的呢?但是加上jumbotron就可以显示了,不明白。...
  6. 如何隐藏地址栏中的真实地址_如何删除Chrome地址栏记录?
  7. aes 加密_AES加密的安全问题
  8. byte数组转blob类型_Java类型相互转换byte[]类型,blob类型
  9. 源生php怎么打印,PHP如何实现云打印
  10. 一点php博客,PHP一点认识