# 课程 14:条件

正如我们前面提到的,更准确总是好的,这适用于编码、对话、以及正则表达式。例如,您不会写一份购物清单让别人买更多的 .* (Buy more .*),因为您不知道您能得到什么。相反,您可以写买更多的牛奶 (Buy more milk) 或买更多的面包 (Buy more bread)。在正则表达式中,我们可以明确地定义这些条件 (conditionals)。

我们可以使用 | (逻辑或 locigal OR,也就是管道 pipe) 来表示可能的不同的字符集,尤其是在使用组的时候。在上面的示例中,我们可以编写模式 Buy more (milk|bread|juice) 来匹配字符串 Buy more milk、Buy more bread 或 Buy more juice。

与正常的组一样,您可以在条件 (condition) 中使用任何字符或元字符序列,例如,([cb]ats*|[dh]ogs?) 将要么匹配 cats 或 bats,要么匹配 dogs 或 hogs。编写具有许多条件的模式可能很难阅读,因此如果它们太复杂,您应该考虑将它们拆分为单独的模式。

继续尝试写一个条件模式 (conditional pattern),只匹配下面包含小动物的行。

练习 14:匹配条件文本
Task Text Result
match I love cats
match I love dogs
skip I love logs
skip I love cogs
解决上述任务以继续下一个问题,或者查看答案