複雜文字分隔:
你需要將乙個字串分割為多個字段,但是分隔符(還有周圍的空格)並不是固定的。
解決辦法:
1 >>> line = 'asdf fjdk; afed, fjek,asdf, foo
'2 >>>import re
3 >>> re.split(r'
[;,\s]\s*
', line)
4 ['
asdf
', '
fjdk
', '
afed
', '
fjek
', '
asdf
', '
foo']
note:
當你使用re.split()
函式時候,需要特別注意的是正規表示式中是否包含乙個括號捕獲分組。 如果使用了捕獲分組,那麼被匹配的文字也將出現在結果列表中。比如,觀察一下這段**執行後的結果:
1 >>> fields = re.split(r'(;|,|\s)\s*
', line)
2 >>>fields
3 ['
asdf
', '
', '
fjdk
', '
;', '
afed
', '
,', '
fjek
', '
,', '
asdf
', '
,', '
foo'
]4 >>>
獲取分割字元在某些情況下也是有用的。 比如,你可能想保留分割字串,用來在後面重新構造乙個新的輸出字串:
1 >>> values = fields[::2]2 >>> delimiters = fields[1::2] + [''
]3 >>>values
4 ['
asdf
', '
fjdk
', '
afed
', '
fjek
', '
asdf
', '
foo'
]5 >>>delimiters
6 ['
', '
;', '
,', '
,', '
,', ''
]7 >>> # reform the line using
the same delimiters
8 >>> ''.join(v+d for v,d in
zip(values, delimiters))9'
asdf fjdk;afed,fjek,asdf,foo
'10 >>>
如果你不想保留分割字串到結果列表中去,但仍然需要使用到括號來分組正規表示式的話, 確保你的分組是非捕獲分組,形如(?:...)
。比如:
1 >>> re.split(r'(?:,|;|\s)\s*
', line)
2 ['
asdf
', '
fjdk
', '
afed
', '
fjek
', '
asdf
', '
foo'
]3 >>>
文字處理 字串
字串常用操作 漢字到拼音的轉換 x 125 so o x so 175 sh x x sh 7d se e x se 1.250000e 02 d,c 65,65 65,a print format 1 3 保留3位小數 0.333 format 3.5 格式化為百分數 350.000000 for...
vim文字處理技巧
如果要把這篇文章寫的詳細透徹,那我沒有必要去書寫,因為已經有了這本書 vim實用技巧 如果時間和精力足夠的同學可以購買或者借閱,真的是寫的很詳細。vim實用技巧 豆瓣 我就在這裡總結一點最常用的文字處理技巧,有時候拿來查閱一下,比較方便,以供參考。vim編輯模式下輸入 游標字元跳轉,h j k l ...
python之文字處理 字串(九)
在python中我們遇到的最多的就是字串了,那麼對於它的ixie 操作我們肯定是要非常熟悉的了,那我們就先來了解一下我們的轉義字元以及字串的格式化吧 轉義字元 在字串中某些特定的符號前加乙個斜線之後,該字元被解釋成另外一種含義,不再表示原來的字元 一些常見的轉義字元 轉義字元 含義 b 退格,將游標...