2015-11-13 51 views
1

retreive特定的URL我使用返回此文本的API:正則表達式從文本

<http://192.168.1.10:8080/longUrl>; rel="recording-session", 
<http://192.168.1.10:8080/realLongUrl>; rel="h264-session-sdp", 
<http://192.168.1.10:8080/realLongDifferentUrl>; rel="h264-session-sdp", 
<rtp://239.1.1.18:5006>; rel="destination-high", 
<rtp://239.1.1.17:5006>; rel="destination-low" 

我想中檢索後跟; rel="h264-session-sdp第一URL。所以在這種情況下,這將是:http://192.168.1.10:8080/realLongUrl

我一直在嘗試修改在這裏找到的示例,但只是可以似乎得到它的權利擺弄。

+2

你可以顯示一些不起作用的小辮子正則表達式嗎? –

+0

主要嘗試修改此處找到的正則表達式示例:http://stackoverflow.com/a/413165/1577926。用我自己的分隔符替換大括號。我一直在比賽中獲取分隔符以及內容。 – JasperZelf

回答

2

試這一個/([^<]+)(?:>; rel\=\"h264\-session\-sdp\")/

+0

我相信OP希望它可以重複使用多個API調用,所以它也適用於'; rel =「destination-low」'等 –

+0

這將只返回第一個mutch –

+0

謝謝@AndrewEvt – JasperZelf

0

選擇文本插圖中的大於和小於字符:

?<=\<)(.*?)(?=>)

https://regex101.com/r/oS5sX6/1

如果你想選擇多條線路上的網址,添加G和M修飾符:

/(?<=\<)(.*?)(?=>)/gm

https://regex101.com/r/oS5sX6/2

+0

試圖將其修改爲僅我需要的一個,但它表示它是無效的.... SyntaxError:invalid regexp group 'var res = linkHeaders.match(/(?<= \ <)(.*?)(?=\>)>; rel = \ 「h264-session-sdp \」/);' – JasperZelf

+0

嘗試'var res = linkHeaders.match(/(?<= \ <)(.*?)(?=\>)>; rel = \「h264-session-sdp \」);'斜槓 –

0

試試這個:

/(?<=\<)(.*?)(?=\>)>; rel="h264-session-sdp"/