正则表达式中的圆括号
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)
正则表达式中的圆括号相关推荐
- python正则表达式中括号的用法_Python的正则表达式中的圆括号到底如何使用?
这个问题并不太严重,严格来说我这样提问有些草率,不过也有人关注那我就把自己百度探究的结果写一写好了,有错误则请指出来. 首先是文档说明: >>> import re >> ...
- 定义一个圆类java用echo_正则表达式中圆括号的作用
圆括号在正则表达式中有着十分重要的作用. 在shell中的圆括号和正则中的圆括号是有区别的.在shell中圆括号意味着进程替换,比如 (var=1)表示在子shell(子进程)中创建变量var并赋值 ...
- 正则表达式中圆括号的作用
圆括号在正则表达式中有着十分重要的作用. 在shell中的圆括号和正则中的圆括号是有区别的.在shell中圆括号意味着进程替换,比如 (var=1)表示在子shell(子进程)中创建变量var并赋值 ...
- php正则表达式中的字符是,PHP_PHP正则表达式中的特殊字符,字符/意义:对于字符,通常表 - phpStudy...
字符/ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线 ...
- 正则表达式中(RegExp)的字符和转译
正则表达式中常用的特殊字符: 符号 含义 ^ 匹配的起始位置,^在 [ ] 中表示反义 $ 匹配的结束位置 . 可以任意匹配任意一个字符 ,[ ] 中的 . 是字符 . ? 匹配前面的字符0次或一次, ...
- 正则表达式中,如何在任意匹配字符后面加上原字符和特定内容
正则表达式中,如何在任意匹配字符后面加上原字符和特定内容 数据的中间,时间格式上没有秒, 10.7.98.204,10.4.177.5,wb_gh017,2018/7/1 23:58,00-71-C2 ...
- 正则表达式中的特殊字符一览
正则表达式中的特殊字符一览 〓简介〓 字符意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释. 例如:/b/匹配字符'b',通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特 ...
- Matlab:正则表达式中的标文
Matlab:正则表达式中的标文 简介 多个标文 不匹配的标文 替代文本中的标文 命名捕获 简介 正则表达式中使用的括号不仅将该表达式的元素分组在一起,而且会为找到的与该组条件匹配的任何匹配项指定标文 ...
- 正则表达式中的 [] 与 ()
正则表达式中的 [] 与 () 1. 圆括号 () 圆括号在正则表达式中表示组的概念,主要应用于限制多选结构的范围.分组.捕获文本.环视. 1.1 示例:多选结构 (a|b|c):匹配 a 或 b1 ...
最新文章
- 【 Verilog HDL 】进一步了解 Verilog HDL 的赋值运算符
- git学习小结(未完待续)
- java求两个集合的交集和并集,比较器
- 学习小技巧---javascript中获取服务器端控件生成的页面ID
- python join函数_Python join()函数
- (pytorch-深度学习系列)pytorch数据操作
- 怎样用CDN防篡改、抗攻击、控内容?一份CDN安全指南请查收
- 物联网思维导图_物联网将如何改变我们的思维方式
- 微课系列(8):Python中lambda表达式的变量作用域
- 从零开始实现一个简易的Java MVC框架(九)--优化MVC代码
- 《Python Enhancement Proposal #8》要点 学习摘录
- Python基础之字典
- c#_delegate_异步调用_BeginInvoke
- 易班自动答题脚本_如何使用python进行自动网上考试
- 如何统计项目代码行数
- Linux入门系列课程一
- 实现微信公众号二维码生成
- 图解http(七)-web的攻击技术
- 你想过逃离上海吗?不用4小时
- 高校校园网代理Motion pro持续重连解决办法
热门文章
- BeautifulSoup 删除标签而不删除内容(unwrap())
- KDB内核调试 - 1
- 医药行业数字化转型加速,上云势在必行!
- 人工智能 python 江苏省_【江苏省人工智能招聘_最新江苏省人工智能招聘信息】-前程无忧...
- bootstrap显示大图模态框
- FRCRN: BOOSTING FEATURE REPRESENTATION USING FREQUENCY RECURRENCE FOR MONAURALSPEECH ENHANCEMENT
- 矩阵运算中一个圆圈里面一个乘号是什么运算?—— 克罗内克积
- excel vba 解密
- 转载:与吸烟者共同生活的人,患肺…
- 一年催回超40亿,催收巨头永雄上市梦仍在