第 10 课:开头和结尾

到目前为止,我们编写的正则表达式都是部分匹配文本中的片段。有时这并不理想,例如,假设我们想在一个日志文件中匹配单词“success”。我们当然不希望该模式匹配包含“Error: unsuccessful operation”的行!这就是为什么通常最佳实践是编写尽可能具体的正则表达式,以确保我们在匹配实际文本时不会出现误报。

收紧模式的一种方法是定义一个模式,该模式使用特殊的^脱字符号)和$美元符号)元字符来描述行首和行尾。在上面的示例中,我们可以使用模式^success匹配以单词“success”开头的行,而不是“Error: unsuccessful operation”行。如果你同时使用脱字符号和美元符号,则会创建一个模式,该模式完全匹配行首和行尾的整行。

请注意,这与在括号集中[^...]中用于排除字符的脱字符号不同,这在阅读正则表达式时可能会令人困惑。

尝试使用这些新的特殊字符匹配下面每个字符串。

练习 10:匹配行
任务 文本  
匹配 Mission: successful To be completed
跳过 Last Mission: unsuccessful To be completed
跳过 Next Mission: successful upon capture of target To be completed
解答

表达式“Mission: successful”将在文本中的任何位置匹配,因此我们需要在表达式^Mission: successful$中使用起始和结束锚点,以仅匹配以“Mission”开头并以“successful”结尾的完整字符串。

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