的一定的格式我有以下形式的字符串列表:正则表达式和python去除串
d = ['0.04M sodium propionate', ' 0.02M sodium cacodylate', ' 0.04M bis-tris propane', ' pH 8.0 ']
我想删除x.xxM
但继续跟随pH
数量。我尝试以下:
import re
for i in range(len(d)):
d[i] = d[i].translate(None,'[1-9]+\.*[0-9]*M')
其产生以下:
>>> d
['4 sodium propionate', ' 2 sodium cacodylate', ' 4 bistris propane', ' pH 8 ']
除去从pH
的.0
为好。我认为translate()
不考虑订单,对吧?另外,我不明白为什么4
,2
等仍然在任何一个元素。我怎样才能删除严格以[1-9]+\.*[0-9]*M
(意思是应该有一个数字,后面跟着一个.
和零个或多个数字,以及一个M
)的形式?
编辑:我知道使用正则表达式不适用于translate()
。它匹配0
,.
和M
并将其删除。我想我可以试试re.search()
,找到确切的一段字符串,然后做sub()
。
您是否尝试过使用正则表达式模块('import re')? – Kevin
你读过'translate'的文档吗?因为它完全不适合工作 –
我以为我已经在使用它了。我会将其添加到问题中。 – sodiumnitrate