附加重複的字符串。例如,我有一個這樣的字符串:正則表達式在PHP
Line 1
<br/>
<br/>
Line 2
<br/>
<br/>
<br/>
Line 3
我需要檢測和更換複製和連接字符串,如<br/>
的,因此將只有1 <br/>
代替。所以,最後的結果我想到的是:
Line 1
<br/>
Line 2
<br/>
Line 3
任何人都可以幫助我的正則表達式?解釋將不勝感激。
附加重複的字符串。例如,我有一個這樣的字符串:正則表達式在PHP
Line 1
<br/>
<br/>
Line 2
<br/>
<br/>
<br/>
Line 3
我需要檢測和更換複製和連接字符串,如<br/>
的,因此將只有1 <br/>
代替。所以,最後的結果我想到的是:
Line 1
<br/>
Line 2
<br/>
Line 3
任何人都可以幫助我的正則表達式?解釋將不勝感激。
preg_replace('/(.{3,})\\1+/s', '\\1', $string);
這將取代的3個字符以上重複的字符串的任何序列。
如果你想只更換<br/>
S:
preg_replace('/(<br\/>\s*){2,}/s', '\\1', $string);
謝謝,是否可以指定要清理的某個字符串,例如只有「
」纔會被清除。 –
ayublin
是的,我已經更新了答案 – arnaud576875
哎呀,我試過只有一個'
',看起來像它不工作.. –
ayublin
不是你的正則表達式問題的直接答案,仍然考慮使用sed來做它;禮貌Eric Pement's sed one-liners。
# delete duplicate, consecutive lines from a file (emulates "uniq").
# First line in a set of duplicate lines is kept, rest are deleted.
sed '$!N; /^\(.*\)\n\1$/!P; D'
# delete duplicate, nonconsecutive lines from a file. Beware not to
# overflow the buffer size of the hold space, or else use GNU sed.
sed -n 'G; s/\n/&&/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P'
# delete all lines except duplicate lines (emulates "uniq -d").
sed '$!N; s/^\(.*\)\n\1$/\1/; t; D'
對不起,我不提供我將要使用的語言的信息,這可能與PHP一起使用嗎? – ayublin
不,sed是unix命令行工具 –
什麼語言?當你詢問關於SO的正則表達式時,你應該幾乎總是指定你正在使用的語言。 – xanatos
@xanatos:在PHP中,編輯過的問題。謝謝。 – ayublin