[英]Separating Strings and other values with comma as a delimiter....!
我正在處理一個項目,在這個項目中會有一個變量保存任何用逗號分隔的數據類型。
我需要將所有這些東西分開,還需要定義它是哪種類型。
例如:data="Hello, Hey",123,10.04
我使用 split() 函數來分隔,但它甚至在字符串“Hello,Hey”中分隔逗號
我不需要這樣,我所需要的只是用逗號分隔值而不是字符串中的逗號。
我殺了我的大腦,但這對我來說仍然是一個問題。 因為我是初學者。
提前致謝
我正在努力理解您的問題 - 似乎您有一個字符串,字符串中包含數據,以逗號分隔:
data='"Hello, Hey",123,10.04'
您可以使用shlex
模塊將其拆分為尊重引號
>>> import shlex
>>> s = shlex.shlex(data)
>>> s.whitespace = ','
>>> s.wordchars += '.'
>>> print(list(s))
['"Hello, Hey"', '123', '10.04']
你可以像這樣使用re
模塊:
[m.group(1) or m.group(2) for m in re.finditer(r'"([^"]*)",?|([^,]*),?', '"Hello, Hey",123,10.04')]
您可以將re.findall
與正則表達式模式"[^"]+"|[^,]+
:
import re
print(re.findall(r'"[^"]+"|[^,]+', '"Hello, Hey",123,10.04'))
這輸出:
['"Hello, Hey"', '123', '10.04']
只需使用 shlex 模塊
import shlex
data = '"Hello, Hey",123,10.04'
data = shlex.split(data)
print(data)
輸出:
["Hello, Hey", "123" , "10.04"]
您可以使用re.split
拆分逗號前的雙引號或逗號后跟數字的組合
import re
data='"Hello, Hey",123,10.04'
re.split(r'(?<="),|,(?=\d)', data)
['"Hello, Hey"', '123', '10.04']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.