2009-07-07 378 views
0

我需要解除一些文字,看起來像這樣的YouTube鏈接之間的鏈接:正則表達式搶方括號

 
[youtube=http://www.youtube.com/v/qpbAe2HyzqA&hl=en&fs=1&] 

誰能幫助?

回答

2

嘗試這樣:

\[youtube=(https?://[^\]]+)\]

+0

這個伎倆。謝謝,安德魯。 – hitfactory 2009-07-07 09:02:14

0

你可以用awk。

awk ' FS="[" {print $(NF) } ' file_with_text > temp.txt 
awk ' FS="]" {print $(NF-1)} ' temp.txt > results.txt 

這是分兩部分來說明,因爲awk很奇怪。如果你只需要URL而不是youtube = first,那麼你將需要使用文件分隔符(如FS =「youtube =」)來運行awk。 awk對輸入也可能很奇怪;如果file_with_text在第一行中有文本,它可能會很奇怪,如果文件以您選擇的文件分隔符結束,那麼awk可能會出錯(只是將除FS符號以外的任何文本添加到文件末尾)。

編輯:刪除貓功能。似乎不太清楚,但它更簡潔。

+1

`cat`的另一個不必要的用法:而不是`cat FILE | awk PATTERN FILE`,只需使用`awk PATTERN FILE`。 – 2009-07-07 01:56:22