我有一堆字符串,看起來像這樣:'../DisplayPhotod6f6.jpg?t=before&tn=1&id=130'
,我想拿出問號後的所有東西,看起來像'../DisplayPhotod6f6.jpg'
。小vim正則表達式
s/\(.\.\.\/DisplayPhoto.\{4,}\.jpg\)*'/\1'/g
這個正則表達式捕獲一些但不是全部的出現,你能明白爲什麼嗎?
我有一堆字符串,看起來像這樣:'../DisplayPhotod6f6.jpg?t=before&tn=1&id=130'
,我想拿出問號後的所有東西,看起來像'../DisplayPhotod6f6.jpg'
。小vim正則表達式
s/\(.\.\.\/DisplayPhoto.\{4,}\.jpg\)*'/\1'/g
這個正則表達式捕獲一些但不是全部的出現,你能明白爲什麼嗎?
下面的正則表達式:/(\.\./DisplayPhoto.*\.jpg)/gi
對下面的例子測試:
../DisplayPhotocef3.jpg?t=before&tn=1&id=54
../DisplayPhotod6f6.jpg?t=before&tn=1&id=130
將導致:
../DisplayPhotocef3.jpg
../DisplayPhotod6f6.jpg
這是PCRE,它不同於Vim的正則表達式。 – jamessan 2010-07-29 03:32:54
我覺得去這個easyest方法是:
s/?.*$/'/g
這就是說:刪除問號後面的所有內容,並用單引號替換它。
%s/\('\.\.\/DisplayPhoto\w\{4,}\.jpg\).*'/\1'/g
一些注意事項:
你能給一個錯過的例子嗎? – 2010-07-28 19:02:40
Amardeep,它錯過了''../DisplayPhotocef3.jpg?t=before & tn = 1 & id = 54'',''../DisplayPhotod6f6.jpg?t=before & tn = 1 & id = 130'' , 還有很多。 – nnyby 2010-07-28 19:11:42
第一個「。」的用途是什麼?在組的開始?它可以替換爲「'」(單引號)嗎? – matias 2010-07-28 20:21:29