我有一个WordPress XML文件,我必须查找并替换以将纯YouTube YouTube转换为YouTube嵌入代码。我不能只进行通配符搜索,因为XML文件还有指向需要保持原样的YouTube视频的锚点链接。
所以,我必须找到这样的字符串:
http://www.youtube.com/watch?v=qO7xcLFBIPI&list=PLz0RLQy-mngFQ1I67MJGmH-7kfltr4neI
和此:
http://www.youtube.com/watch?v=qO7xcLFBIPI
用这个替换它们:
<iframe width="640" height="360" src="https://www.youtube.com/embed/qO7xcLFBIPI?list=PLz0RLQy-mngFQ1I67MJGmH-7kfltr4neI"
frameborder="0" allowfullscreen></iframe>
但是不符合这一点:
src="http://www.youtube.com/embed/videoseries?list=PLz0RLQy-mngFQ1I67MJGmH-7kfltr4neI"
或者这个:
<a href="http://www.youtube.com/watch?v=czZLV0ofaMc&list=PLz0RLQy-mngFQ1I67MJGmH-7kfltr4neI">
我认为任何没有用引号括起来的youtube链接都会这样做。任何帮助将不胜感激。我认为在Coda中进行正则表达式搜索和替换会做到这一点,但我没有掌握这方面的知识。
干杯。
答案 0 :(得分:2)
如何(^|[^"])(http:\/\/www.youtube.com\/[^\s"]*)
,并使用第二个匹配组。
说明:
(^|[^"])
找到该行的开头或双引号以外的任何字符;这是必要的,以确保你不在双引号内,但匹配被忽略。http:\/\/www.youtube.com\/
当然会找到“http://www.youtube.com/”。[^\s"]*
查找所有字符,但不包括下一个空格(\s
)或双引号("
)。