2011-05-18 171 views
3

我想使用正則表達式從多行字符串中刪除所有空格字符。 我所尋找的是這樣的:刪除/替換多行字符串中的所有空格,除了換行符

exp = re.compile("\s-[\r\n]") 
exp.sub('', text) 

是否有做上述正則表達式。由於text是unicode,除了[\t\v\f \r\n]之外,其他字符可能形成\s類,所以我不能使用[\t\v\f ]

+0

順便說一句 - 我不知道Python的個人,但你不應該使用['re.U'] (http://docs.python.org/library/re.html#re.U)? – Kobi 2011-05-18 10:26:52

+0

關於're.U',我以爲python在輸入文本是unicode時會自動使用它。現在我所有的數據都是英文的,所以我不知道除了上述以外是否還有其他空格字符。我剛剛從python文檔中找到'\ s'中的字符列表。當我想到unicode問題時,我真的想用我提到的正則表達式'[\ t \ v \ f]'來滿足我的需求。如果您知道除了上述之外的任何Unicode空白字符,請讓我知道,並且我將檢查是否需要使用're.U'。 – compbugs 2011-05-18 15:44:17

回答

7

試試這個雙重否定字符類:

[^\S\r\n] 

例子:http://rubular.com/r/t2Ahjs9UzF

+0

「雙重否定性」,你剛剛做出了一個,對吧?! :) – 2011-05-18 10:03:15

+0

@Bart - 我想是的!謝謝':)' – Kobi 2011-05-18 10:05:13

+0

感謝@Kobi它的工作! – compbugs 2011-05-18 15:58:05