【问题标题】:PHP + Regular ExpressionsPHP + 正则表达式
【发布时间】:2011-12-21 09:49:26
【问题描述】:

我很难从特定文本/文章中删除重复的图像。

假设我有一个图片标签,其中 src="http://domain.com/image.jpg" 和 我想删除(/隐藏)所有具有以下模式的图像:

http://domain.com/image-999x999.jpg

目前,我的正则表达式是(但它不起作用):

'/'.preg_quote('src="http://domain.com/image-').'([0-9]{3}\x[0-9]{3})\.(gif|png|jpg)/i'

(例如,正则表达式应该忽略这个:http://domain.com/image-20-999x999.jpg

欢迎提出任何建议!

干杯,

【问题讨论】:

  • 它在什么方面不起作用?
  • 可能是\x,因为它很可能应该是x。无论是那个还是src=" 部分......
  • (也可以在出现问题时启用error_reporting。)

标签: php regex expression


【解决方案1】:

在这种情况下,preg_quote() 不起作用,因为您遗漏了第二个参数。它需要知道你使用的分隔符,否则它无法逃脱它:

 preg_quote('src="http://domain.com/image-', '/')

不过,您最好为正则表达式本身使用另一个分隔符。就像 # 一样,它不存在于您的基本 href 中。如果它只是那个固定的字符串,你实际上不需要引用。

【讨论】:

  • 谢谢马里奥,这个简单而直接的答案解决了我的问题! ;)
【解决方案2】:

试试

preg_match_all('/src="http:\/\/domain\.com\/image\-\d{3}xd{3}\.(gif|png|jpg)/'
                inputHTML, $imgs);

我还没有尝试过,我希望它有效:)

【讨论】:

    猜你喜欢
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2013-05-30
    • 2012-08-03
    • 1970-01-01
    相关资源
    最近更新 更多