用于提取标记[img]和[/img]之间内容的正则表达式
尝试设计一个PHP regexp来提取文本中第一个[img]...[/img]标记的内容。也可以是img或img。
非常感谢您的帮助。
使用我糟糕的regexp,我带来了以下内容,但不起作用:
/[img](.+)[/img/]
以下是一个应该起作用的文本示例:
Http://pt.wikipedia.org/wiki/Erich_von_D%C3%A4niken]Erich von Daniken[/url][/Align][align=center][img]http://www.ceticismoaberto.com/wp-content/uploads/2012/04/erich_von_daniken_7.jpg[/img]
它应该只返回: http://www.ceticismoaberto.com/wp-content/uploads/2012/04/erich_von_daniken_7.jpg
我正在使用网页向regexp发送文本: http://www.myregextester.com/index.php 我使用的PHP代码是:$message=$post["message"];
//try to locate the first image on the post text
if (preg_match("!http://[^?#]+.(?:jpe?g|png|gif)!Ui", $message, $matches)) {
return $matches[0];
}
上面的正则表达式在某些情况下不起作用,就像我之前展示的那样,这就是为什么我正在尝试不同的方法。
解决方案
这应该会奏效
/[img](.*?)[/img]/i
[]字符应使用进行转义,因为它们由正则表达式解析器使用。
相关文章