第 4 课:排除特定字符

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

为了表示这一点,我们使用一个类似的表达式,该表达式使用方括号^帽子)来排除特定字符。例如,模式[^abc]将匹配除字母 a、b 或 c 之外的任何单个字符。

使用下面的字符串,尝试编写一个仅匹配活体动物(hog、dog,但不包括 bog)的模式。请注意,大多数此类模式也可以使用上一课中的技术编写,因为它们实际上是同一枚硬币的两面。通过拥有这两种选择,您可以在编写自己的模式时决定哪一种更容易编写和理解。

练习 4:排除字符
任务 文本  
匹配 hog To be completed
匹配 dog To be completed
跳过 bog To be completed
解决方案

匹配以 'og' 结尾但不是 'bog' 的任何行的最简单解决方案是表达式 [^b]og。或者,您可以使用上一课中学到的知识并使用 [hd]og 来匹配 'hog' 和 'dog' 但不匹配 'bog'。请注意,它是一个稍微更严格的表达式,因为它限制了它可以匹配的字符串。

解决上述任务以继续下一个问题,或阅读 解决方案