【问题标题】:PHP regular expression [ replace ]PHP 正则表达式 [ 替换 ]
【发布时间】:2016-12-02 23:14:53
【问题描述】:

请求帮助解决html代码版中正则表达式的两种情况[解析]

现在我将解析器与下一个逻辑一起使用(下面的 YouTube 示例)

从 YouTube 中选择源 html 代码的唯一片段(ED96RtfF22E)并将其放入我网站上的内部标签 [YouTube] 中

来源:

<iframe width="560" height="315" src="https://www.youtube.com/embed/ED96RtfF22E" frameborder="0 "allowfullscreen> </iframe> 

使用:

replace|0|#<iframe[^>]*youtube\.com\/embed\/([^"]*)"[^>]*>[^<]*<\/iframe>#|[YouTube]$1[/YouTube]|1|

基于此逻辑需要解决以下问题:

案例#1

将部分html代码替换为图片

SOURCE:在 .jpg (?12345) 之后有不正确的故事

<img alt="" src="xxx.com/ooo.jpg?12345"> 

需要:“src”标签没有像这样的故事&lt;img alt="" src="xxx.com/ooo.jpg"&gt;

replace|0|...|...|1|

此处标记为“...”的部分是php正则表达式进行更改的地方。 非常感谢您的帮助!

【问题讨论】:

  • 有很多工具可以帮助建立正确的表达方式。输入谷歌“在线正则表达式”。
  • 这有点不清楚。更大的文字不会使它更明显。
  • 为什么对这些非常具体的功能使用正则表达式?第一个可以简单地使用explode()array_reverse() 获得,第二个是简单的explode() - 当然你需要获得src-元素,为此有几种方法,但正则表达式是我不会用它来完成如此简单的任务。
  • 您的大部分问题无需加粗和标头。这不会让我们更有可能回答您的问题。

标签: php html regex replace


【解决方案1】:

对于第一种情况:&lt;img.*src=\"[^?]*).*(\"&gt;) 并替换为 \1\2


对于第二种情况:&lt;iframe.*src=\".*embed\/(.*?)\".*?&lt;\/iframe&gt; 并替换为 [YT]\1[/YT]

如果您不想替换,请使用:

preg_match('/<iframe.*src=\".*embed\/(.*?)\".*?<\/iframe>/', $input, $match);
$output = "[YT]" + $match[1] + "[/YT]"

【讨论】:

  • 尼古拉斯,谢谢你的回答!看到后更改了问题描述,请重新阅读
猜你喜欢
  • 2013-12-09
  • 2011-02-21
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多