原文:https://www.cnblogs.com/richiewlq/p/7307581.html

圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理
方括号是单个匹配 字符集/排除字符集/命名字符集

正则表达式的() [] {} 有着不同的意思。

() 是为了提取匹配字符串的,表达式中有几个()就有几个相应的匹配字符串

(\s*)表示连续空格的字符串

[] 是定义匹配的字符范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\s表示空格或者号]

{}一般是用来匹配的长度。比如\s{3}表示匹配三个空格,\s[1,3]表示匹配1到3个空格

(0-9)匹配’0-9’本身。[0-9]匹配数字(注意后面有,可以为空)[0-9]+匹配数字(注意后面有+,不可以为空),

{0-9}写法是错误的

[0-9]{0,9}表示长度为0到9的数字字符串。

圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理
示例:

1(abc|bcd|cde),表示这一段是abc、bcd、cde三者之一,顺序也必须一致

2、(abc)? 表示这一组要么一起出现,要么不出现,出现那则按顺序出现

3、(?:abc)表示找到一样abc的一组,但是不记录,不保存到变量中,否则可以通过x取第几个括号所匹配道德项

,比如:

(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1获取(aaa)匹配到的内容,而3则获取到了(ccc)匹配到的内容,而$4则获取的是由(eee)

匹配到的内容,因为前一对括号没有保存变量

4.a(?=bbb)顺序环视 表示a后面必须紧跟3个连续的b

5、(?i:xxxx)不区分大小写 (?s:.*)跨行匹配,可以匹配回车符

方括号是单个匹配 字符集/排除字符集/命名字符集
示例:

1、[0-3],表示找到一个位置上的字符只能是0到3折四个数字,与(abc|bcd|cde)的作用比较类似,但圆括号可以匹配多个连续的字符

而一对方括号只能匹配单个字符

2、[^0-3] 表示找到这个位置上字符只能是除了0到3之外的所有字符

3、[:digit:] 0-9 [:alnum] A-Za-z0-9

()和[]有本质的区别

()内的内容表示的是一个表达式,()本身不匹配任何东西,也不惜那是匹配任何东西,只是把括号内的内容作为

同一个表达式来处理,例如(ab){1,3},就表示ab一起连续出现最少1次,最多三次。如果没有括号的话,ab{1,3},

就表示a 后面紧跟的b出现的最少一次,最多三次。另外,括号在匹配模式中也跟重要。这个就不延伸了。

[]表示匹配字符在[]中,兵出现一次,并且reshuffle字符写在[]会被当成普通字符来匹配,例如[(a)],会匹配(、a、)、这三个字符。

所以()[] 无论是作用还是表示的含义。都有天壤之别,没有什么联系。

正则表达式()、[]、{}的区别相关推荐

  1. linux通配符和正则表达式的区别总结

    目录 通配符和正则表达式的区别 Linux中的通配符 通配符和正则表达式的区别 在看鸟哥的Linux私房菜的时候看到十二章一直强调通配符和正则表达式的区别,在我的理解中,两者貌似是一样的都是用来匹配的 ...

  2. 软链接与硬链接的区别;描述通配符与正则表达式的区别

    软硬连接区别: 删除硬链接 对源文件和软连接没有任何影响 删除软链接 对源文件和硬链接没有任何的影响 删除文件的源文件 对硬链接没有影响 但会导致软连接失效(红底白字闪烁) 同时删除硬链接与源文件 文 ...

  3. 正则表达式分类 区别

    原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html 正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某 ...

  4. Split和正则表达式的区别

    昨天晚上耗了很长时间在字符过滤上.原本以为正则表达式会快一点.(自己没有学过正则表达式)从昨天到今天敲了很长时间的代码也读了很多东西.走了不少弯路. 总的说来 split 可以精确的获得你所需要的字符 ...

  5. 正则表达式与扩展正则表达式区别

    最近在学习正则表达式时,遇到了一些问题,究其原因是正则表达式与扩展正则表达式的区别没有弄清楚 正则表达式与扩展正则表达式类似,只是扩展正则表达式表达更加简单正则表达式需要打 \ 转义字符 来表示某些字 ...

  6. php 调用 perl,在PHP中使用与Perl兼容的正则表达式

    前言 PHP被大量的应用于Web的后台CGI开发,通常是在用户数据数据之后得出某种结果,但是如果用户输入的数据不正确,就会出现问题,比如说某人的生日是"2月30日"!那应该怎么样来 ...

  7. 【转】C# 正则表达式 使用介绍

    正则元字符 在说正则表达式之前我们先来看看通配符,我想通配符大家都用过.通配符主要有星号(*)和问号(?),用来模糊搜索文件.winodws中我们常会使用搜索来查找一些文件.如:*.jpg,XXX.d ...

  8. [转] vim 正则表达式 很强大

    毋庸多言,在vim中正则表达式得到了十分广泛的应用. 最常用的 / 和 :s 命令中,正则表达式都是不可或缺的. 下面对vim中的正则表达式的一些难点进行说明. 关于magic vim中有个magic ...

  9. linux 正则表达式 视频教程,30分钟带你玩转正则表达式

    定义: 正则表达式说白了就是有普通字符.以及特殊字符组成的文子模式.{匹配模式标准} 正则表达式将会作为一个模板与所搜索的字符串进行匹配.可以让使用者轻易达到搜寻/删除/取代某些特定字符的处理程序.此 ...

  10. vim正则表达式(转)

    Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作. 如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节. 一.使用正则表达式的命令 使用正则表达 ...

最新文章

  1. 要做服务和酒店行业的“领英” ,Industry 获得230万美元种子轮融资
  2. 大学计算机基础python-大学计算机基础最新章节_曾一著_掌阅小说网
  3. linux下创建和删除软、硬链接
  4. 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?
  5. 兼容IE678的placeholder
  6. panel中html怎么写,panel控件有什么用 请写出Panel控件的用途
  7. DotNetCommon-搜集.neter开发常用的功能
  8. 开源的关系型数据持久化组件
  9. STL之Map完整(Linux内核)内部实现
  10. fov视场角计算_图像传感器集成计算功能,赋能机器视觉技术
  11. 求素数的三种方法(Java实现)
  12. DotNetBar 使用教程
  13. windows10下破解开机密码
  14. RandomAccessFile 随机读写文件
  15. 读书笔记----10日摘抄整理(03)
  16. 非接触物体尺寸形态测量(G 题)
  17. linux curl证书错误,curl – SSL证书错误
  18. layer进度条ajax,layui动态进度条详细。
  19. php session fixation,什么是session fixation攻击
  20. phaser.sprite.body overlap collide seperate

热门文章

  1. 从阿里巴巴说到管理软件的产业链打造--管理软件夜未眠(一)
  2. 20150_0907_三角形各种心的计算公式_垂心_外心_重心_内心
  3. 将计算机与局域网互连学,计算机局域网组建与互连大学设计实施方案设计实施方案.doc...
  4. facebook帐号共享_与朋友和家人共享照片的最佳免费方式(除Facebook外)
  5. VRCORE系列公开课 | 在杭州探讨VR开发与辅助技术
  6. Jsp实现Cookie保存用户名和密码(包含:什么是Cookie,Cookie带来的好处,Cookie的主要方法)
  7. Python加密解密程序
  8. 配置文件——节点machineKey的作用,强随机生成
  9. # 个人日记-书籍《晚安·夜风相伴》读后感-20210816
  10. elementui动态table表格抖动,表格样式错乱