1.7.3 明确的事情 BACKWARDFORWARD


无论你何时匹配一个句型, 它将在每个位置进行匹配直到它找到一个匹配。一个界限允许你限制句型所能匹配的范围。事实上,一个界限匹配一个空,但按着上下文,它是一类特殊的空。你可以把这个称为一个规则,或一个限制,或一个断言。无论你怎样称它,它将匹配零长度的东西,或者成功或者失败。(如果它失败, 意思是这个句型不能匹配这种特殊方式。如果有其他方式,这个句型将继续匹配其他方式)

这个特别的字符串是, 匹配一个词界限, 它被定义为一个word字符()和一个非word字符()之间的空。(这个并不存在于字符串的头和尾的字符被认为是非word字符。)例如,

/\bFred\b/ 将匹配"The Great fred"和"Fred the Great", 但不匹配"Frederick the Great",因为在Frederick中的"de"不包含一个词界限。

类似地,对于字符串的开始和结束也有一个界限。如果它是一个句型的开始,"^"将匹配字符串开始的"空"。因此,句型/^Fred/将匹配"Frederickthe Great"而不匹配"The Great Fred", 所以/Fred^/将不匹配这两个。(事实上, 这没有什么意义)$符号象^一样起作用, 它是匹配字符串末尾的空而不是字符串的开始[6]。

所以当我们说下面时,你可能想到:

next LINE if /^#/;

我们的意思是"如果这行以#开始, 那么继续LINE循环的下一次循环。


Copyright: NPACT BACKWARDFORWARD