我有一个编辑器可以粘贴视频网址,我可以通过正则表达式将其转换为嵌入代码。
WYSIWYG编辑器中的网址是: http://emedia.is.ed.ac.uk:8080/JW/wsconfig.xml&file=mp4:directory/date_submitted/filename-stream-WSwifi.m4v
输出html是:
<p>http://emedia.is.ed.ac.uk:8080/JW/wsconfig.xml&file=mp4:directory/date_submitted/filename-stream-WSwifi.m4v</p>
要查找此内容,我在JavaScript中使用以下正则表达式:
/http:\/\/(www.)?emedia.is.ed.ac.uk:8080\/JW\/?(.*)?/
但由于某种原因,匹配包含</p>
以及匹配组2?我怎么能避免这种情况?
答案 0 :(得分:1)
试试这个
http:\/\/(www\.)?emedia\.is\.ed\.ac\.uk:8080\/JW\/?([^<]*)
我没有使用.*
匹配任何字符,而是使用[^<]*
,而不是匹配“&lt;”之外的任何字符。
我最后删除了?
,因为你不需要*
量词,我也逃脱了你想要匹配的所有点。
答案 1 :(得分:0)
在这种特定情况下,您可以将上一个.
更改为[^<\s]
。
/http:\/\/(www\.)?emedia\.is\.ed\.ac\.uk:8080\/JW\/?([^<\s]*)/
这样,匹配将在第一个<
或空格处停止。
答案 2 :(得分:0)
(.*)?
最后吞下你的p标签。我会把正则表达式重写为
http:\/\/(www.)?emedia.is.ed.ac.uk:8080\/JW\/?([^<]*)
现在第2组是干净的