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

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

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

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

{}一般是用来匹配的长度。比如A{3}表示匹配三个A,B{1,3}表示匹配1到3个B

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

{0-9}写法是错误的

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

(0-9)A{1}表示字符串为"0-9"后面有且只有1个A

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

示例:

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

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

3、(?:abc)表示找到一样abc的一组,但是不记录,不保存到变量中,否则可以通过变量中,否则可以通过x取第几个括号所匹配道德项,比如:(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1获取(aaa)匹配到的内容,而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. Android 自动化测试—robotium(六) 通过命令行执行Robotium自动化测试用例及导出报告
  2. 演示一个使用db vault进行安全控制的示例
  3. 黑盒测试与白盒测试(Black box Testing)
  4. LINUX 用户’nobody’
  5. 【Android学习日记】
  6. Linux启动或禁止SSH用户及IP的登录
  7. Android编程心得-JSON使用心得(二)
  8. 同TextView在不同的显示内容
  9. iptables的配置文件/etc/sysconfig/iptables不存在怎么办
  10. cocos2d-x 3.x 橡皮擦功能
  11. ELK 日志分析体系
  12. Web开发问题记录
  13. 【window】mongodb安装和配置
  14. jenkins自动构建站点
  15. spring boot 使用第三方jar的方法
  16. 五一培训 清北学堂 DAY2
  17. Oracle 系统调优
  18. AJPFX平台讲述买卖、点差、单位,外汇的交易时间以及外汇交易者的参与者
  19. Python 项目实践二(生成数据)第二篇
  20. asp.net MVC中防止跨站请求攻击(CSRF)的ajax用法

热门文章

  1. mbstowcs 和ifstream 前为何要setlocale
  2. java导出pdf
  3. RabbitMQ中声明交换器,队列时的,autoDelete=true自动删除的条件
  4. java后端的知识学习
  5. python自动生成bean类
  6. 集群web-ui
  7. JDK源码看ArrayList和Vector的一些区别
  8. bis.org
  9. ArcGIS中的坐标系:基本概念和常用操作(一)
  10. Linux命令行下载工具