1.正则表达式中的圆括号的作用是对字符进行分组,并保存匹配的文本。

2.圆括号用法I:对字符或元字符进行分组,这样在圆括号内就可以对字符组合使用限定符。

eg. 匹配A+一个数字+A+一个数字:(A\d){2}

3.圆括号用法II:表示可选择性。

3.1 从两个直接量中选择一个

eg. gr(a|e)y匹配gray和grey,该例子还可以使用gr[ae]y,字符类效率更高。

3.2 从多个直接量中选择

eg. (Doctor|Dr\.?)匹配Doctor,Dr,Dr.三种情况

3.3 错误匹配的交替行为,

使用交替行为时,有时会出现意想不到的错误。

eg. 用(a|ab)匹配ab时,只能匹配a,但是如果用(ab|a),则可以匹配ab

4.捕获圆括号:正则表达式中,与位于圆括号之间的模式匹配的内容都会被捕获。

4.1 当模式中有嵌套的圆括号时,变量的编号会按照圆开括号出现的位置一次进行。

eg. ([A-Za-z](\d{2}))((-)\d{2})匹配”A22-33”时,匹配情况如下:

Group 1:   A22

Group 2:   22

Group 3:   -33

Group 4:   -

4.2 .NET中,可以创建命名的组,语法为:

(?<组名>模式)或(?’组名’模式)

eg. (?<FirstLetter>\w(?'Num'\d{2}))((-)\d{2})匹配” A22-33”情况为:

Group "FirstLetter": A22

Group "Num":  22

Group 1:   -33

Group 2:   -

4.3 非捕获的圆括号:.NET和JavaScript都提供了非捕获圆括号的功能,即圆括号的内容不作为捕获对象,当圆括号中的内容不是想捕获的对象时,采用非捕获圆括号可以提高匹配效率。语法为:

(?:the-non-captured-content)

eg. (\w(?:\d{2}))((?:-)\d{2})匹配” A22-33”情况如下:

Group 1:   A22

Group 2:   -33

注:\d{2}匹配的”22”没有被捕获

5.反向引用(backreferences)

语法:.NET和JavaScript中,表示匹配第一组的变量被指定为”\1”

能够体现反向引用的便利性的一种情况是找到句子中重复的单词。

eg. 查找下列句子中重复的单词:

I think that that is often overdone.

This sentence contains contains a doubled word or two two.

我们用([A-Za-z]+) +\1\b来匹配,红色部分为匹配的结果

在这个匹配模式中([A-Za-z]+)为匹配的第一组变量,后面加一个或多个空格( +)表示单词间隔,

然后用”\1”来表示第一组匹配的变量(即[A-Za-z]+匹配的内容),最后一个表示单词的结束(\b)

正则表达式中的圆括号相关推荐

  1. python正则表达式中括号的用法_Python的正则表达式中的圆括号到底如何使用?

    这个问题并不太严重,严格来说我这样提问有些草率,不过也有人关注那我就把自己百度探究的结果写一写好了,有错误则请指出来. 首先是文档说明: >>> import re >> ...

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

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

  3. 正则表达式中圆括号的作用

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

  4. php正则表达式中的字符是,PHP_PHP正则表达式中的特殊字符,字符/意义:对于字符,通常表 - phpStudy...

    字符/ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线 ...

  5. 正则表达式中(RegExp)的字符和转译

    正则表达式中常用的特殊字符: 符号 含义 ^ 匹配的起始位置,^在 [ ] 中表示反义 $ 匹配的结束位置 . 可以任意匹配任意一个字符 ,[ ] 中的 . 是字符 . ? 匹配前面的字符0次或一次, ...

  6. 正则表达式中,如何在任意匹配字符后面加上原字符和特定内容

    正则表达式中,如何在任意匹配字符后面加上原字符和特定内容 数据的中间,时间格式上没有秒, 10.7.98.204,10.4.177.5,wb_gh017,2018/7/1 23:58,00-71-C2 ...

  7. 正则表达式中的特殊字符一览

    正则表达式中的特殊字符一览 〓简介〓 字符意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特 ...

  8. Matlab:正则表达式中的标文

    Matlab:正则表达式中的标文 简介 多个标文 不匹配的标文 替代文本中的标文 命名捕获 简介 正则表达式中使用的括号不仅将该表达式的元素分组在一起,而且会为找到的与该组条件匹配的任何匹配项指定标文 ...

  9. 正则表达式中的 [] 与 ()

    正则表达式中的 [] 与 () 1. 圆括号 () 圆括号在正则表达式中表示组的概念,主要应用于限制多选结构的范围.分组.捕获文本.环视. 1.1 示例:多选结构 (a|b|c):匹配 a 或 b1 ...

最新文章

  1. 【 Verilog HDL 】进一步了解 Verilog HDL 的赋值运算符
  2. git学习小结(未完待续)
  3. java求两个集合的交集和并集,比较器
  4. 学习小技巧---javascript中获取服务器端控件生成的页面ID
  5. python join函数_Python join()函数
  6. (pytorch-深度学习系列)pytorch数据操作
  7. 怎样用CDN防篡改、抗攻击、控内容?一份CDN安全指南请查收
  8. 物联网思维导图_物联网将如何改变我们的思维方式
  9. 微课系列(8):Python中lambda表达式的变量作用域
  10. 从零开始实现一个简易的Java MVC框架(九)--优化MVC代码
  11. 《Python Enhancement Proposal #8》要点 学习摘录
  12. Python基础之字典
  13. c#_delegate_异步调用_BeginInvoke
  14. 易班自动答题脚本_如何使用python进行自动网上考试
  15. 如何统计项目代码行数
  16. Linux入门系列课程一
  17. 实现微信公众号二维码生成
  18. 图解http(七)-web的攻击技术
  19. 你想过逃离上海吗?不用4小时
  20. 高校校园网代理Motion pro持续重连解决办法

热门文章

  1. BeautifulSoup 删除标签而不删除内容(unwrap())
  2. KDB内核调试 - 1
  3. 医药行业数字化转型加速,上云势在必行!
  4. 人工智能 python 江苏省_【江苏省人工智能招聘_最新江苏省人工智能招聘信息】-前程无忧...
  5. bootstrap显示大图模态框
  6. FRCRN: BOOSTING FEATURE REPRESENTATION USING FREQUENCY RECURRENCE FOR MONAURALSPEECH ENHANCEMENT
  7. 矩阵运算中一个圆圈里面一个乘号是什么运算?—— 克罗内克积
  8. excel vba 解密
  9. 转载:与吸烟者共同生活的人,患肺…
  10. 一年催回超40亿,催收巨头永雄上市梦仍在