PHP里的正则表达式问题

qklin 2011-11-26 09:47:52
<!--begin-->
<a href="" target=_blank><font color=#000000>中嗯</font></a>
jhwengwsdgwenydhasdh
中嗯
2354235en;;/w;,.;
<!--end-->

我想匹配类似]<!--begin--><!--end-->当中的内容的时候.我发现一个问题不知道是什么原因

我把$pattern='/<!--begin-->([.\n]+)<!--end-->/';
为什么这样无法匹配 只要.加了[]就是无法 是函数原因还是php里的正则表达式不一样

然后我上网找了一下 这样就可以匹配 为什么嗯
$pattern='/<!--begin-->(.+)<!--end-->/s';

请高手详细说明这其中的原因 至少让我清楚下 为什么是这样的 有什么参考文献或资料说明的不PHP
...全文
129 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiwensun 2011-11-27
  • 打赏
  • 举报
回复
.你用的不对
xuzuning 2011-11-27
  • 打赏
  • 举报
回复
. 的用法并没有变化,只是你用的不对
一般的 . 表示任意字符
但作为特例 \. 或 [.] 就表示 . 这个字符
一起混吧 2011-11-27
  • 打赏
  • 举报
回复
[.\n] 表示 . 或者 换行
qklin 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jordan102 的回复:]

你理解错了,[.\n]是匹配不到包括 '\n' 在内的任何字符的。
上面说了。.在[]里面就表示 . 这个字符。
要匹配包括 '\n' 在内的任何字符串。借助模式修正符的功能。即s 它表示将多行视为单行处理。且换行符作为普通字符。
就是第二个正则表达式
[/Quote]
嗯 是这样的吗
奇怪的是为什么正则表达式里的 【要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。】这句话错了还是我理解错了
一起混吧 2011-11-27
  • 打赏
  • 举报
回复
你理解错了,[.\n]是匹配不到包括 '\n' 在内的任何字符的。
上面说了。.在[]里面就表示 . 这个字符。
要匹配包括 '\n' 在内的任何字符串。借助模式修正符的功能。即s 它表示将多行视为单行处理。且换行符作为普通字符。
就是第二个正则表达式
qklin 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuzuning 的回复:]

. 的用法并没有变化,只是你用的不对
一般的 . 表示任意字符
但作为特例 \. 或 [.] 就表示 . 这个字符
[/Quote]
任意字符不是[.\n]+吗??
==============================
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。
================================
ohmygirl 2011-11-27
  • 打赏
  • 举报
回复
关于元字符 .
表示匹配一个任意字符。义或者如果转在字符组【】中,则就表示字符‘.’,此时它不再是元字符

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧