【发布时间】:2015-06-12 20:51:40
【问题描述】:
我有一个文本区域,其中可能包含标签。我需要在 src 属性(“/storyimages/”)中使用特定的文本字符串来识别这些标签并删除它们。例如,如果我有文本
<br><img src="/storyimages/myimage.jpg" align="right" WIDTH="105" HEIGHT="131"><b>(CNS) </b>Lorem ipsum dolor...
我只想摆脱整个标签并用''替换它。我尝试使用的正则表达式模式是
/<img src=.*\/storyimages\/.*>/
但它不起作用。发生的情况是它标识了字符串 ok 的开始,但它没有标识结束符 > 字符,所以如果我使用 preg_match(),匹配以 .
我知道您不应该在 HTML 上使用正则表达式,但这不是嵌入式标签;它只是一堆文本中的一个标签,所以我应该没问题。据我所知, > 不是特殊字符,但即使我将其转义,我仍然得到相同的结果。
我是否缺少一些简单的东西可以使这项工作正常进行?或者我是否需要编写某种函数,逐个字符地遍历字符串以查找开括号和右括号的位置,然后替换它们?
有趣的是,当我用regex tester 尝试这个时,它工作正常,但是当我实际运行代码时,我遇到了上述问题。
谢谢。
【问题讨论】:
-
这是不使用正则表达式的一种方法:eval.in/309744
-
如果您的问题是您没有匹配 img 之后的第一个
>,您需要使用?使其变得懒惰,正则表达式将是<img src=.*\/storyimages\/.*?>,经过测试 @987654323 @