Mid-Atlantic Developer Conference - Call for Speakers


在字符类外部,模式中的句点匹配目标字符串中的任意字符,包括非打印字符, 但是(默认)不包括换行符。如果 PCRE_DOTALL 被设置,句点就会匹配换行符。 句点的处理和^、$的处理没有关联,它们唯一的关系是它们都涉及到了换行符。 句点在字符类中没有任何意义。

\C可以被用于匹配单字节, 也就是说在UTF-8模式下,句点可以匹配多字节字符。

add a note add a note

User Contributed Notes 1 note

7 years ago

        preg_match_all("/<img.*>/", $htmlfile, $match);

Since PCRE_DOTALL is not used, this pattern is expected to NOT make matches across multiple lines.  However, in somecases it can, depending on the PCRE default settings and your data ($htmlfile).  The problem is that some are set to recognize NEWLINES differently.
To fix this use,

        preg_match_all("/(*ANY)<img.*>/", $htmlfile, $match);

Now, any character that could possibly be seen as a newline will be interpreted as a newline by the PCRE.
NOTE: This pattern has been available since PCRE version 7.3
To Top