"
Python學習教程:針對任意多的分隔符拆分字符串
我們需要將字符串拆分為不同的字段,但是分隔符(以及分隔符之間的空格)在整個字符串中並不一致。
""
Python學習教程:針對任意多的分隔符拆分字符串
我們需要將字符串拆分為不同的字段,但是分隔符(以及分隔符之間的空格)在整個字符串中並不一致。
字符串對象的split()方法只能處理非常簡單的情況,而且不支持多個分隔符,對分隔符周圍存在的多種空格情況也無能為力。當需要一些更為靈活地功能時,應該使用re.split()方法:
import re
line='abc def ; ghi, jkl,mno, pkr'
#分隔符:分號,都逗號,空格符,前後可以跟著任意數量的額外空格
result=re.split(r'\\s*[;,\\s]\\s*',line)
print(result)
結果:
['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
re.split()是很有用的,因為可以為分隔符指定多個模式。例如,在上面的解決方案中,分隔符:分號,都逗號,空格符,前後可以跟著任意數量的額外空格。同str.split()得到的結果一樣,最終得到的結果是字段列表。
當使用re.split()時,需要小心正則表達式模式中的捕獲組是否包含在了括號裡。
如果用到了捕獲組,那麼匹配的文本也會包含在最終結果中。比如,看看下面的案例:
import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\\s*(;|,|\\s)\\s*',line)
print(result)
結果:
['abc', ' ', 'def', ';', 'ghi', ',', 'jkl', ',', 'mno', ',', 'pkr']
在特定的上下文中獲取到分隔符也可能是有用的。例如,用分隔字符來改進字符串的輸出:
import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\\s*(;|,|\\s)\\s*',line)
values=result[::2]
delimiters=result[1::2]+['']
print(values)
print(delimiters)
last=''.join(v+d for v,d in zip(values,delimiters))
print(last)
結果:
['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr']
[' ', ';', ',', ',', ',', '']
abc def;ghi,jkl,mno,pkr
如果不想在結果中看到分隔字符,但仍然想用符號來對正則表達式模式進行分組,請確保用的是非捕獲組,以(?:…)的形式指定。示例如下:
import re
line='abc def ; ghi, jkl,mno, pkr'
result=re.split(r'\\s*(?:;|,|\\s)\\s*',line)
print(result)
結果:
['abc', 'def', 'ghi', 'jkl', 'mno', 'pkr'
更多的Python學習教程會繼續為大家更新!
相關推薦
'Python基礎學習教程系列講解——try_except異常處理機制'
"在Python編程中不可避免的會出現錯誤,在調試階段出現語法之類的錯誤時,Pycharm會在Debug窗口提示錯誤,但是程序在運行時由於內部隱含的問題而引起錯誤,會導致程序終止執行。比如以下例程中,使用urllib庫打開URL時由於網絡問題而發生了錯誤:import ur...
'用Python控制Excel實現自動化辦公!附全套學習教程'
"1.安裝2.操作一個簡單的Excel文檔操作註釋及代碼:操作完成後,數據存儲結果如下:3. 操作簡單Excel文檔並添加數據格式操作代碼如下:附帶數據格式的定義操作效果如圖所示:4.Excel中添加不同類型的數據操作代碼如下:將不同的數據按照指定的格式添加到文件中代碼執行...
'阿里巴巴Python工程師推出了的一份Python學習清單,絕對經典'
"站在風口上,豬都能飛起來。人工智能風口,讓Pyhon這門膠水語言轉變成非常火的網紅語言。編程功力深厚的程序員花一兩個星期就能上手Python,而一些新手程序員花幾個月就可以上手。學編程,用Python確實是一個相當不錯的選擇。不過,面對Python網上有紛雜的資料,一些程...
'寫python爬蟲,不會正則怎麼行呢?另贈學習資料'
"導讀:正則在各語言中的使用是有差異的,本文以 Python 3 為基礎。本文主要講述的是正則的語法,對於 re 模塊不做過多描述,只會對一些特殊地方做提示。很多人覺得正則很難,在我看來,這些人一定是沒有用心。其實正則很簡單,根據二八原則,我們只需要懂 20% 的內容就可以...
'學習Python細分化為這12個階段,各階段思維導圖助你輕鬆學Python'
"分12個階段學習Python,各個階段思維導圖奉上,這樣你還學不會?學習Python細分化為這12個階段,各階段思維導圖助你輕鬆學Python:1.Python 解釋器:2.Python數據結構:3.變量與運算符:4.Python 流程控制:5.Python 文件處理:6...
推薦中...