簡體   English   中英

用逗號作為分隔符分隔字符串和其他值....!

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM