php 正则匹配行头 ^ 问题 |
今天遇到一个问题,在php 上用正则表达式
查找每行开头是数字的内容, 👈🔥🦀♂🦖
🎩🤖🙌 找来找去发现只找到了一次,我一度以为是php坏了,用其他语言查找是没问题的,用php就只找到了一个(123) 搜了好久资料才发现问题所在,php有个所谓的 单行模式和多行模式 👩🕶🧹😷🦴 默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾, 或者最后的换行符(除非设置了 D 修饰符)。这个行为和 perl 相同。 当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外, 还分别匹配目标字符串的最开始和最末尾位置。这等同于 perl 的 /m 修饰符。如果目标字符串 中没有 "\n" 字符,或者模式中没有出现 ^ 或 $,设置这个修饰符不产生任何影响。 简单来说就是加上 m 修饰符后,会把每一个 \n\r 后面当成新的一行,这样才能用 ^ 匹配到新行头,否则只有一个行头。 👂🪐🍊🔞🦊
帖子热度 2090 ℃
|
|
昨天接到一陌生来电,她说是联通公司的,问我是不是185……的机主,我说是啊,她又问我贵姓,我说姓付,又问我名我说单字一个亲,然后她说付亲你好……,她停顿半刻,随即把电话挂了。对付骗子就要这样!
|