我已经输了一个字符串,其中数字将以逗号结尾,
该程序如下所示:
import re
s = 'natraj 12 dozen $100.25, camlin 10 box $1250.50,'
lis = re.split('\s*\$\s*|\s*\,\s*', s)[:-1]
print(lis)
description = lis[0::2]
amount = lis[1::2]
print(description)
print(amount)
输出:
description = ['natraj 12 dozen','camlin 10 box'] and
amount = ['100.25',1250.50']
(amount
列表不应包含$ sign)
现在我想要与上面相同的输出:但现在输入字符串不包含逗号
s = 'natraj 12 dozen $100.25 camlin 10 box $1250.50'
答案 0 :(得分:0)
有很多方法可以实现这一目标。一些:
根据您的示例,上面的数字2非常简单..只需将?
(之前的RE子句可选)添加到逗号:
lis=re.split('\s*\$\s*|\s*\,?\s*', s)[:-1]
答案 1 :(得分:0)
您可以尝试以下正则表达式来分隔数字和描述部分,
(?P<Numbers>\$\d+(?:\.\d+)?,)|(?P<Description>\w+(?: \w+)*)
如果您不想要,请从捕获的群组中删除逗号。
(?P<Numbers>\$\d+(?:\.\d+)?)|(?P<Description>\w+(?: \w+)*)
答案 2 :(得分:0)
尝试将字符串的字符放在列表中,然后使用.delete函数从列表中删除逗号,并在输出中返回列表。希望这会有所帮助。:) \
list_of_s = [s]
list_of_s.delete(',')