正则表达式的替换和分组
2页1、替换和分组替换使用 | 字符来允许在两个或多个替换选项之间进行选择。例如,可以扩展 章节标题正则表达式,以返回比章标题范围更广的匹配项。但是,这并不象您 可能认为的那样简 单。替换匹配 | 字符任一侧最大的表达式。示例示例您可能认为,下面的表达式匹配出现 在行首和行尾、后面跟一个或两个数字的 Chapter 或 Section:/Chapter|Section 1-90-90,1$/很遗憾,上面的正则表达式要么匹配行首的单词 Chapter, 要么匹配行尾的单 词 Section 及跟在其后的任何数字。如果输入字符串是 Chapter 22,那么上 面的表达式只匹配单词 Chapter。如果输入字符串是 Section 22,那么该表达 式匹配 Section 22。若要使正则表达式更易于控制,可以使用括号来限制替换的范围,即,确保它 只应用于两个单词 Chapter 和 Section。但是,括号也用于创建子表达式,并 可能捕获它们 以供以后使用,这一点在有关反向引用的那一节讲述。通过在上 面的正则表达式的适当位置添加括号,就可以使该正则表达式匹配 Chapter 1 或 Secti
2、on 3。下面的正则表达式使用括号来组合 Chapter 和 Section,以便表达式正确地起 作用:/(Chapter|Section) 1-90-90,1$/尽管这些表达式正常工作,但 Chapter|Section 周围的括号还将捕获两个匹配 字中的任一个供以后使用。由于在上面的表达式中只有一组括号,因此,只有 一个被捕获的“子匹配项”。可以通过使 用 RegExpRegExp 对象的 $1-$9$1-$9 属性来引 用此子匹配项。在上面的示例中,您只需要使用括号来组合单 词 Chapter 和 Section 之间的 选择。若要防止匹配被保存以备将来使用,请在括号内正则表达式模式之前放 置 ?:。下面的修改提供相同的能力而不保存子匹配项:/(?:Chapter|Section) 1-90-90,1$/除 ?: 元字符外,两个其他非捕获元字符创建被称为“预测先行”匹配的某些 内容。正向预测先行使用 ?= 指定,它匹配处于括号中匹配正则表达式模式的 起始点的搜索字符串。反向预测先行使用 ?! 指定,它匹配处于与正则表达式 模式不匹配的字符串的起始点的搜索字符串。例如,假设您有一个文档,该文档包含指向 Windows 3.1、Windows 95、Windows 98 和 Windows NT 的引用。再进一步假设,您需要更新该文档, 将指向 Windows 95、Windows 98 和 Windows NT 的所有引用更改为 Windows 2000。下面的正则表达式(这是一个正向预测先行的示例)匹配 Windows 95、Windows 98 和 Windows NT:/Windows(?=95 |98 |NT )/找到一处匹配后,紧接着就在匹配的文本(不包括预测先行中的字符)之后搜 索下一处匹配。例如,如果上面的表达式匹配 Windows 98,将在 Windows 之 后而不是在 98 之后继续搜索。
《正则表达式的替换和分组》由会员wt****50分享,可在线阅读,更多相关《正则表达式的替换和分组》请在金锄头文库上搜索。
高电压技术 第一章第四节 起始电压与气压的关系
风湿免疫病的新认识与新进展
频数分布表与频数分布直方图1
青岛版九上1.1《平行四边形及其性质》(1)
集团整体业务群的战略安排
金钱_共同面对的话题71171
重要有机物的制备
重性精神疾病的防治培训
酵母醇脱氢酶的提取及专一性测定
高二选修(溶液的酸碱性)2010hy
高二生物必修3《生态系统的物质循环》课件
高一数学集合的基本关系
陈-从梯子的倾斜程度谈起(2)
阿卡宁衍生物合成产物中乙酰胆碱酯酶抑制剂的筛选 -
课题1 海带中碘元素的分离及检验
说不尽的桥课件1
语法--英语词性分类及用法
记忆与知识的储存
解读“引起近视的其它原因”
计算机算法设计与分析(第3版)第2章
2023-08-15 5页
2023-07-18 2页
2023-04-07 5页
2023-04-06 4页
2023-04-06 3页
2023-04-06 4页
2023-04-06 3页
2023-04-06 3页
2023-04-06 2页
2023-04-06 2页