“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用。

单独的“?”:匹配前面的子表达式零次或一次。

当“?”紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。

转存失败重新上传取消

扩展资料

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

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

19   22

评论  分享  举报

转存失败重新上传取消

转存失败重新上传取消yongirl320 
推荐于2017-10-09
展开全部

?: 是 不想被捕获的时候使用 可以提高程序执行速度

比如 ([a-z][0-9])+

这个正则表达式里 ( ) 里面的内容被捕获了, 反向引用的时候可以用上 。
一般正则替换的时候用的多 像UBB代码

但是 如果写成 (?:[a-z][0-9])+
跟上面 正则表达式 整体匹配是一样的 就是 不会捕获 ( )里内容了。
也就是不能使用 反向引用

如果还是不太理解, 那就先了解一下 反向引用吧。

追问
不理解。能不能详细点。

追答
比如 PHP 手册里 有个 正则替换的函数 preg_replace 有的列子$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
// 结果显示  April1,2003这里就用上了 反响引用
$replacement  里的 ${1} 代表  (\w+)  ,    $3代表 第2个 (\d+)
这个正则表达式 里 一共有 3个 ()  也就是  可以  用 $1  $2  $3  调用 3个()里的 内容。也可以使用 \1    \2    \3 来 代替  $1  $2  $3  都是一样的那接下来 如果把 代码里的 正则表达式 改成下面的$pattern = '/(?:\w+) (?:\d+), (\d+)/i';
那 这里  只有 一个 () 里的 内容 能使用
带 ?:的 ()里面内容是不会被 捕获的  ,所以 只能使用 $1 代表最后的 (\d+)

?:在正则表达式中什么意思相关推荐

  1. 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结

    正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中的*,+,?以及\w和\W的区别等常见问题的总结_wl_ss的博客-CSDN博客 正则表达式中 ...

  2. 小tips:JS之按位取反,语法标签label,正则表达式中replace的0,1是什么?

    JS按位取反 Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算.如 ~1 = -2; ~2 = -3; 来看看~1的计算步骤: 将1(这里叫:原码)转二进制 = 000 ...

  3. 正则表达式中grep,sed的用法(包括基本的正则表达式和扩展的正则表达式)

    一 正则表达式   Basic REGEXP:基本正则表达式 Extended REGEXP:扩展正则表达式 (正则表达式是使得计算机变成智能化的重要途径) 1.1 基本正则表达式 . : 表示匹配任 ...

  4. 正则表达式中的非捕获组是什么?

    非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? #1楼 在复杂的正则表达式中,您可能会希望使用大量的组,其中一些用于重复匹配,而另一些则提供反向引用. 默认情况下,与每个组匹配的文本会 ...

  5. 定义一个圆类java用echo_正则表达式中圆括号的作用

    圆括号在正则表达式中有着十分重要的作用. 在shell中的圆括号和正则中的圆括号是有区别的.在shell中圆括号意味着进程替换,比如  (var=1)表示在子shell(子进程)中创建变量var并赋值 ...

  6. 正则表达式中模式修正符作用详解(i、g、m、s、x、e)

    正则表达式中常用的模式修正符有i.g.m.s.x.e等.它们之间可以组合搭配使用. 它们的作用如下: //修正符:i 不区分大小写的匹配; //如:"/abc/i"可以与abc或a ...

  7. Java 正则表达式中为什么反斜杠“\“需要用“\\\\”表示

    正则表达式语法 在其他语言中,\\(两个斜杠) 表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义. 在 Java 中,\\ (两个斜杠)表示:我要插入一个正则表达式 ...

  8. 正则表达式中的小括号用法

    小括号中的连续字符作为可选: "Nov" -match "\bNov(ember)?\b"  返回true    "November" -m ...

  9. Python字符串和正则表达式中的反斜杠(‘\‘)问题

    在Python普通字符串中 在Python中,我们用''来转义某些普通字符,使其成为特殊字符,比如 In [1]: print('abc\ndef') # '\n'具有换行的作用 abc defgIn ...

  10. python正则表达式中的转义字符_详解python中正则表达式的反斜线的转义功能

    最近深入研读了正则表达式的一本经典著作,对于在python中使用正则表达式时使用反斜线转义功能时有些心得,特与大家分享. 核心思想:在python中使用正则表达式时要切记反斜线具有两层转义功能,如果你 ...

最新文章

  1. JSP中文乱码问题解决方案
  2. python电影推荐算法_电影推荐系统python实现
  3. Singleton模式的实现
  4. 使用Excel导入数据到SAP Cloud for Customer系统
  5. 电大计算机组成原理ppt,四川电大计算机组成原理(0023)第二次形考作业(课程号:5110023).docx...
  6. Spring Boot休眠提示
  7. SSM框架-实现Mybatis分页功能-foreknow_cms
  8. PDF转换成word转换器绿色版使用步骤
  9. HCIA--路由交换
  10. Ubuntu 命令行下修改IP等
  11. linux 网桥代码分析之网桥端口设备接收数据包处理分析Ⅴ
  12. 简要概述网络安全保障体系的总体框架
  13. root高级权限怎么弄,怎样拥有root权限
  14. 发现一个好用的MySQL数据库管理工具
  15. 神通数据库connect by用法
  16. AcWing 4783. 多米诺骨牌
  17. 基于Hopfield 混沌神经网络和压缩感知的可视化图像加密算法
  18. 【已收到Offer】小米前端实习面经(一、二面)
  19. 深入浅出 Greasemonkey
  20. elastic官网文档翻译来.1

热门文章

  1. 2022-2028年中国汽车印制电路板(汽车PCB)产业深度调研及投资前景预测报告
  2. python装饰器学习
  3. linux系统管理必备知识之关机命令
  4. 漫谈Word2vec之skip-gram模型
  5. react非常适合入门者学习使用的后台管理框架
  6. LeetCode简单题之验证外星语词典
  7. TVM适配NN编译Compiler缺陷
  8. Yolov4性能分析(下)
  9. 混合装置实现了24/7的能量收集和储存
  10. 三维视觉惯性SLAM的有效Schmidt-EKF