$ 可以匹配行尾,也可以匹配文件尾吗?请高手讲讲$匹配的到底有哪些?匹配的是\n,\r\n,抑或结尾没\r\n,也可以匹配吗?

解决方案 »

  1.   


    m(PCRE_MULTILINE)        默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。        当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。 
      

  2.   

    也就是说,$既可以匹配这样一个位置:其后是\r或\r\n,或者匹配整个字符串的末尾位置,是这样吗?