3.1 行的起始与结束

就像之前看到的那样,要匹配行或字符串的起始要使用脱字符(U+005E):

  1. ^

根据上下文,^会匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。而上下文则依赖于应用程序和在应用程序中所使用的选项。

如你所知,若要匹配行或字符串的结尾位置要使用美元符:

  1. $

请确定RegExr中的multiline(多行)选项被勾选。global(全局)选项在打开RegExr时默认勾选,但是本例中你可以勾选也可以不勾选该选项。如果不勾选multiline选项,整个目标文本被视做一个字符串。

在上方的文本框中键入下面这个正则表达式:

  1. ^How.*Country\.$

它会匹配以单词How开头的整行。请注意结尾的点号之前有一个反斜杠,它对点号进行转义,这样点号就被解释为字面值。如果不对点号转义,它就会匹配任意字符。如果想匹配作为字面值的点号,则必须将点号转义或者将其放入字符组中(参见第5章)。

如果不勾选multiline选项会是什么情况?高亮显示功能会被关闭。在不勾选multiline但选dotall的情况下,键入:

  1. ^THE.*\?$

可以看到它匹配了整个文本。

dotall选项表示点号除了匹配其他字符之外,还会匹配换行符。取消勾选dotall选项,则该表达式什么也不匹配。而以下表达式:

  1. ^THE.*

则匹配第一行。再点击dotall选项,全部文本都会被匹配。不需要使用\?$来匹配文本的结尾。