我有一個用例,我想用一個空格替換多個空格,除非它們出現在引號內。例如如果多個空格不在引號之間出現,請用單個空格替換多個空格?
原始
this is the first a b c
this is the second "a b c"
this is the first a b c
this is the second "a b c"
後,我相信一個正則表達式應該能夠做的伎倆,但我沒有與他們太多的經驗。下面是一些代碼,我已經有
import re
str = 'this is the second "a b c"'
# Replace all multiple spaces with single space
print re.sub('\s\s+', '\s', str)
# Doesn't work, but something like this
print re.sub('[\"]^.*\s\s+.*[\"]^, '\s', str)
我明白了爲什麼我的第二個以上不工作,所以只是想一些替代方法。如果可能的話,你能解釋一下你的regex解決方案的一些部分嗎?由於
你有這樣的事情:'asdasdasd「asdasdasd ____ asdajskd」'('_'代表空格)。你只用空間工作,還是你也想處理新的行? – nhahtdh 2013-03-20 17:06:29
是的。裏面的引號可以是任何東西,它應該被忽略 – Shane 2013-03-20 17:09:39
'裏面的引號可以是任何東西'它可以包含新行嗎? – nhahtdh 2013-03-20 17:11:59