Loading... 大家好!今天我们一起来学习正则表达式中竖线选择符的使用。 什么时候会用到竖线选择符呢?在某个具体的匹配位置,如果我们不确定到底是什么内容,但是知道只有某几种可能性的时候,我们可以用竖线选择符来包含所有的情况。 `|` 竖线选择符表示匹配竖线左边或者右边的内容,比如 `x|y` 就匹配 x 或者 y,竖线选择符也可以多次使用,多种选择,比如 `x|y|z`。 我们用源文本: ```bash zood food ``` 来测试一下。 ![zhengze7-1.jpg](http://static.fox-9.com/uploads/2021/08/06/zhengze7-1.jpg!webp) 最简单的办法就是把可能的所有情况都写一遍。但是存在一个问题,就是有的内容可能是重复的,我们会增加很多的编写负担。这里我们两个单词唯一的区别只有首字母,因为我们可以单单选择首字母就好了: ![zhengze7-2.jpg](http://static.fox-9.com/uploads/2021/08/06/zhengze7-2.jpg!webp) 就像这样,但是这有一个致命性问题,那就是这样的写法其实匹配的是 `z` 或者 `food`。`zood` 是匹配不到的,我们可以来看看匹配结果: ![zhengze7-3.jpg](http://static.fox-9.com/uploads/2021/08/06/zhengze7-3.jpg!webp) 那要怎么写呢?我们可以把需要进行匹配分组的用小括号括起来,像这样: ![zhengze7-4.jpg](http://static.fox-9.com/uploads/2021/08/06/zhengze7-4.jpg!webp) 这样就把 `ood` 分离开了,因为它是不变的固定的,所以不会进行选择,而是所见即所查。 但是我们看看这么写的结果: ![zhengze7-5.jpg](http://static.fox-9.com/uploads/2021/08/06/zhengze7-5.jpg!webp) 可以看到我们这么写的话会生成副产品:**子匹配文本**。 子匹配文本是什么呢?其实它是由我们的小括号生成的。有一个小括号就会多一个子匹配文本,这让我们在匹配的同时可以选择性的把匹配到的内容中的一些内容再取出来。比如我们使用小括号把 `z` 或者 `f` 括起来了,那么子匹配文本匹配到的就是小括号括起来的这些部分。 有的时候这些子匹配文本不是我们需要的,我们想要删除这些子匹配文本。怎么做呢?在这里先给大家留一个悬念,这一点等到我们学习到小括号在正则表达式中的使用时再跟大家详细讲解。 好这节课的内容就讲到这里。 以下是我们的视频教程: **在线观看:** http://v.youku.com/v_show/id_XMjcyNjc5Nzc5Mg==.html **高清源文件下载:** <div class="hideContent">该部分仅登录用户可见</div> 感谢大家的收看,我们下期再见! 最后修改:2021 年 08 月 06 日 © 允许规范转载 赞 赠人玫瑰,手留余香