正则表达式入门课
涂伟忠
高级研发工程师
立即订阅
2899 人已学习
课程目录
已更新 7 讲 / 共 16 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (2讲)
开篇词丨学习正则,我们到底要学什么?
免费
导读 | 余晟:我是怎么学习和使用正则的?
基础篇 (4讲)
01 | 元字符:如何巧妙记忆正则表达式的基本元件?
02丨量词与贪婪:小小的正则,也可能把CPU拖垮!
03 | 分组与引用:如何用正则实现更复杂的查找和替换操作?
04 | 匹配模式:一次性掌握正则中常见的4种匹配模式
应用篇 (1讲)
05 | 断言:如何用断言更好地实现替换重复出现的单词?
正则表达式入门课
15
15
1.0x
00:00/00:00
登录|注册

05 | 断言:如何用断言更好地实现替换重复出现的单词?

涂伟忠 2020-06-22
你好,我是伟忠。今天我来和你聊聊正则断言(Assertion)。
什么是断言呢?简单来说,断言是指对匹配到的文本位置有要求。这么说你可能还是没理解,我通过一些例子来给你讲解。你应该知道 \d{11} 能匹配上 11 位数字,但这 11 位数字可能是 18 位身份证号中的一部分。再比如,去查找一个单词,我们要查找 tom,但其它的单词,比如 tomorrow 中也包含了 tom。
也就是说,在有些情况下,我们对要匹配的文本的位置也有一定的要求。为了解决这个问题,正则中提供了一些结构,只用于匹配位置,而不是文本内容本身,这种结构就是断言。常见的断言有三种:单词边界、行的开始或结束以及环视。

单词边界(Word Boundary)

在讲单词边界具体怎么使用前,我们先来看一下例子。我们想要把下面文本中的 tom 替换成 jerry。注意一下,在文本中出现了 tomorrow 这个单词,tomorrow 也是以 tom 开头的。
tom asked me if I would go fishing with him tomorrow.
中文翻译:Tom 问我明天能否和他一同去钓鱼。
利用前面学到的知识,我们如果直接替换,会出现下面这种结果。
替换前:tom asked me if I would go fishing with him tomorrow.
替换后:jerry asked me if I would go fishing with him jerryorrow.
这显然是错误的,因为明天这个英语单词里面的 tom 也被替换了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《正则表达式入门课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
返回
顶部