[英]python regex comma separated value csv of 3 characters
我有一組3個小寫的csv,我想在python中使用re.match函數來提取它們。 我正在使用正則表達式來獲取結果。 我的csv是' sdh , ash, vbn'
我想通過跳過空格和逗號來捕獲所有這些。 但是,我沒有得到正確的輸出。 結果是得到了這個列表:(',vbn',)。 表達式是這樣的: re.match('^[az]{3}((?:,?)[az]{3})*')
您可能只匹配3個被單詞邊界包圍的字符:
csvText = ' sdh , ash, vbn'
matches = re.findall(r'\b\w{3}\b', csvText)
inp = ' sdh , ash, vbn'
m = re.match('(\w+),(\w+),(\w+)', inp.replace(" ", ""))
if m:
print(m.groups())
此正則表達式將匹配除空格和逗號之外的所有字符:
import re
line = ' sdh , ash, vbn'
print(re.findall(r'[^\s,]+', line))
印刷品:
['sdh', 'ash', 'vbn']
如果要使用match ,則可以使用:
\\s*([az]{3})\\s*,\\s*([az]{3}),\\s*([az]{3})\\s*
這將匹配零次或多次空白字符\\s*
,以3組小寫字符([az]{3})
捕獲,然后零次或更多次將空白字符\\s*
和逗號分隔為前兩組3個字符。 對於最后一組,逗號末尾不匹配。
import re
match = re.match(r'\s*([a-z]{3})\s*,\s*([a-z]{3}),\s*([a-z]{3})\s*', ' sdh , ash, vbn')
if match:
print(match.groups())
結果:
('sdh', 'ash', 'vbn')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.