分组构造
来源:互联网 发布:java代码我爱你 编辑:程序博客网 时间:2024/04/29 09:25
分组构造使您可以捕获子表达式组并提高具有非捕获预测先行和回顾后发修饰符的正则表达式的效率。下表描述了正则表达式分组构造。
(?'name')
。(?<name1-name2> )平衡组定义。删除先前定义的 name2 组的定义并在 name1 组中存储先前定义的 name2 组和当前组之间的间隔。如果未定义 name2 组,则匹配将回溯。由于删除 name2 的最后一个定义会显示 name2 的先前定义,因此该构造允许将 name2 组的捕获堆栈用作计数器以跟踪嵌套构造(如括号)。在此构造中,name1 是可选的。可以使用单引号替代尖括号,例如 (?'name1-name2')
。(?: )非捕获组。(?imnsx-imnsx: )应用或禁用子表达式中指定的选项。例如,(?i-s: )
将打开不区分大小写并禁用单行模式。有关详细信息,请参见正则表达式选项。(?= )零宽度正预测先行断言。仅当子表达式在此位置的右侧匹配时才继续匹配。例如,/w+(?=/d)
与后跟数字的单词匹配,而不与该数字匹配。此构造不会回溯。(?! )零宽度负预测先行断言。仅当子表达式不在此位置的右侧匹配时才继续匹配。例如,/b(?!un)/w+/b
与不以 un 开头的单词匹配。(?<= )零宽度正回顾后发断言。仅当子表达式在此位置的左侧匹配时才继续匹配。例如,(?<=19)99
与跟在 19 后面的 99 的实例匹配。此构造不会回溯。(?<! )零宽度负回顾后发断言。仅当子表达式不在此位置的左侧匹配时才继续匹配。(?> )非回溯子表达式(也称为“贪婪”子表达式)。该子表达式仅完全匹配一次,然后就不会逐段参与回溯了。(也就是说,该子表达式仅与可由该子表达式单独匹配的字符串匹配。)命名捕获根据左括号的从左到右的顺序按顺序编号(与非命名捕获类似),但在对所有非命名捕获进行计数之后才开始对命名捕获进行编号。例如,模式 ((?<One>abc)/d+)?(?<Two>xyz)(.*)
按编号和名称产生下列捕获组。(编号为 0 的第一个捕获总是指整个模式)。
((?<One>abc)/d+)?(?<Two>xyz)(.*)
11(默认名称)((?<One>abc)/d+)
22(默认名称)(.*)
31(?<One>abc)
42(?<Two>xyz)
请参见
正则表达式语言元素
- 分组构造
- sql技巧-构造分组条件
- SQL 技巧构造分组依据
- C#中正则表达式的分组构造
- 正则表达式_环视(c#_正则分组构造)
- 分组
- 分组
- 分组.
- 分组
- 分组
- 分组
- 分组
- 分组
- 分组
- 分组
- 东莞市2014年市队选拔赛 分组 构造二分图最小覆盖方案
- 分组与分组函数
- 构造
- ASP.NET编程技术-ASP.NET WEB FORMS 页面间的传值方法
- 测试一下
- 一些ASP初学者常用的代码
- 限定符
- Cacls命令
- 分组构造
- 玩透弹出窗口 (转)
- J2EE tutorial的下载地址
- 成为真正的术士
- 术士天赋
- java中一些多方法的东西总结
- 1小时ASP入门,非常简单
- C#还是JAVA?
- Schedule 2005/03/25