考慮Python的片段:通過替換在Python
import re
str = 'that that kitty is cute'
# Anchor at beginning of string
rgexp_start = r'^(.*) \1'
print(re.sub(rgexp_start, r'\1', str))
# Do NOT anchor at beginning of string
rgexp = r'(.*) \1'
print(re.sub(rgexp, r'\1', str))
此打印:
that kitty is cute
thatkittyiscute
爲什麼第二個正則表達式刪除所有空格?作爲一個額外的問題,考慮JavaScript片段:
var str = 'that that kitty is cute';
var rgexp_start = /^(.*) \1/;
alert(str.replace(rgexp_start, '$1'));
var rgexp = /(.*) \1/;
alert(str.replace(rgexp, '$1'));
其中給出了兩次:
that kitty is cute
爲什麼是它的JavaScript從Python的不同之處的非常相同的正則表達式處理?
以上答案都非常具有啓發性。總結一下:'print(re.sub(r'(\ S +)\ 1',r'\ 1','那個小貓很可愛,小狗很好玩'))'print:'那個小貓是可愛的,小狗是嬉戲的。正則表達式'(\ S +)\ 1'可以說是支持正則表達式的文本編輯器中重複單詞位置的最簡單路徑。 –
很遺憾,一個人不能打勾2個答案。我建議閱讀anubhava和COLDSPEED的答案,兩者都非常相關。 –