这次真的晕了,关于正则的

surfchen 2004-08-10 06:20:50
$content="<a href=topic.cgi?forum=27&topic=17268&show=125 title=\"我喜欢的衣服..title ";
preg_match_all("/forum=27(.*)(title)/sm",$content,$matches);
print_r($matches[0]);
——————
现在输出是:
Array ( [0] => forum=27&topic=17268&show=125 title="我喜欢的衣服..title )
怎么样写才能输出下面这个?
Array ( [0] => forum=27&topic=17268&show=125 title)
...全文
171 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2004-08-16
  • 打赏
  • 举报
回复
. 匹配\n以外的所有字符
加s修饰符后,.同时也匹配\n

(.*)不是可以代表任何字符吗?我后面加s了
是的


$content="<a href=topic.cgi?forum=27&topic=17268&show=125 title=\"我喜欢的衣服..title ";
preg_match_all("/forum=27(.*)(title)/sm",$content,$matches);

(.*)是27以后直到title前的字符,由于是默认的贪婪模式,所以要匹配到第二个title前
如是非贪婪模式
"/forum=27(.*)(title)/smU"则只匹配到第一个title前

为什么在title前加一个空格就可以了呢?
因为$content中的两个title前面分别是空格和.,即
" title"和".title"
所以"/forum=27(.*) (title)/smU"
只会匹配到" title"而不会匹配到".title"
若第二个title前也是空格,那么也是要匹配到第二个title的(在贪婪模式下)
surfchen 2004-08-15
  • 打赏
  • 举报
回复
也就是说.经过s修饰可以匹配任何字符咯?如果这样的话,上面的那个空格符不也能匹配了?
ice_berg16 2004-08-15
  • 打赏
  • 举报
回复
s修正符表示.可以匹配换行符\n
saucer 2004-08-15
  • 打赏
  • 举报
回复
or you can use (.*?)

or in your case, you really should be doing

"/forum=27(\S+)\s+(title)/"
surfchen 2004-08-15
  • 打赏
  • 举报
回复
s加在后面无法修饰前面的匹配吗?不明白
surfchen 2004-08-15
  • 打赏
  • 举报
回复
(.*)不是可以代表任何字符吗?我后面加s了
mrshelly 2004-08-10
  • 打赏
  • 举报
回复
<?
$content="<a href=topic.cgi?forum=27&topic=17268&show=125 title=\"我喜欢的衣服..title ";
preg_match_all("/forum=27(.*) title{1}/sm",$content,$matches);
print_r($matches[0]);
?>
ice_berg16 2004-08-10
  • 打赏
  • 举报
回复
注意使用非贪婪匹配,默认为贪婪匹配
xuzuning 2004-08-10
  • 打赏
  • 举报
回复
偶尔晕一次何妨!?

preg_match_all("/forum=27(.*)(title)/smU",$content,$matches);
surfchen 2004-08-10
  • 打赏
  • 举报
回复
(.*)不是可以代表任何字符吗?我后面加s了
ice_berg16 2004-08-10
  • 打赏
  • 举报
回复
U是Ungreedy的意思,非贪婪

show=125 title
注意第一个title前面是有空格的,所以可以取到。

surfchen 2004-08-10
  • 打赏
  • 举报
回复
加U不是贪婪模式吗?我昨天猛地找在PHP里怎么设置非贪婪呢!!

另外to mrshelly:
为什么在title{1}前加一个空格就可以了呢?我曾经也这样写过,但是没有加到空格,所以没成功

21,893

社区成员

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

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