第4课:排除特定字符类

在某些情况下,我们可能还知道有些特定的字符是我们不想匹配的。例如,我们可能只想匹配不是来自区号 650 的电话号码。

为了表达这种排除的逻辑,我们可以使用与之前类似的表达式,但加上 ^(脱字符)来表示排除某些特定字符。比如,正则表达式 [^abc] 表示匹配除了 a、b、c 以外的任意单个字符。

在下面这些字符串中,请尝试写出一个正则模式,只匹配那些活的动物(如 hog、dog,但不匹配 bog)。注意,这类模式在多数情况下也可以用上一课的技术写出来——这两种方法其实是“同一个硬币的两面”。通过掌握这两种方式,你可以在编写自己的正则模式时,根据哪种更容易理解或更简洁来做选择。

练习 4: 排除字符
Task Text  
匹配 hog To be completed
匹配 dog To be completed
跳过 bog To be completed
提示

要匹配任何以 'og' 结尾但不是 'bog' 的行,最简单的方式是使用正则表达式 [^b]og。另外,你也可以结合上一课学到的内容,使用 [hd]og 来匹配 'hog' 和 'dog',但不会匹配 'bog'。

解决上面的问题以继续到, 或者可以参考答案