0

我有一个编辑器,可以在其中粘贴视频网址,我通过正则表达式将其转换为嵌入代码。

所见即所得编辑器中的网址是: 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&amp;file=mp4:directory/date_submitted/filename-stream-WSwifi.m4v</p>

为了寻找这个,我在 JavaScript 中使用了以下正则表达式:

/http:\/\/(www.)?emedia.is.ed.ac.uk:8080\/JW\/?(.*)?/

但由于某种原因,匹配包含匹配</p>组 2 的以及?我怎样才能避免这种情况?

4

3 回答 3

1

试试这个

http:\/\/(www\.)?emedia\.is\.ed\.ac\.uk:8080\/JW\/?([^<]*)

在 Regexr 上查看。

.*I use不是匹配任何字符,而是[^<]*匹配除“<”之外的任何字符。

我还删除了?最后的,因为使用*你不需要的量词,我还转义了你想要从字面上匹配的所有点。

于 2012-06-11T12:47:29.470 回答
0

在这种特定情况下,您可以将最后一个更改.[^<\s].

/http:\/\/(www\.)?emedia\.is\.ed\.ac\.uk:8080\/JW\/?([^<\s]*)/

这样比赛将在第一个<或空格处停止。

于 2012-06-11T12:45:56.100 回答
0

(.*)?

最后吞下你的 p 标签。我会将正则表达式重写为

http:\/\/(www.)?emedia.is.ed.ac.uk:8080\/JW\/?([^<]*)

现在第 2 组很干净

于 2012-06-11T12:46:05.587 回答