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

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)
...全文
132 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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}前加一个空格就可以了呢?我曾经也这样写过,但是没有加到空格,所以没成功
  • 打赏
  • 举报
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-08-10 06:20
社区公告
暂无公告