3 回答

TA贡献1853条经验 获得超9个赞
您可以这样做re.split(),将字符串拆分为一个或多个非单词字符:
>>> import re
>>> re.split(r'\W+', 'H2 + O2 = 2H2O')
['H2', 'O2', '2H2O']
或者,您可以使用re.findall()查找所有“单词”:
>>> re.findall(r'\w+', 'H2 + O2 = 2H2O')
['H2', 'O2', '2H2O']
如果你想从单词中去掉前导数字,你可以使用这样的模式:
>>> re.findall(r'\b\d*(\w+)', 'H2 + O2 = 2H2O')
['H2', 'O2', 'H2O']

TA贡献1859条经验 获得超6个赞
import re
s = "H2 + O2 = 2H2O"
print (re.split("\W+", s))
# re.split takes a regular expression on which you can split the string.
# \W represents non-word character. For ASCII, word characters are [a-zA-Z0-9_]
# + represents one or more occurrences.
在您的示例中,它将字符串从' + '和' = '

TA贡献1851条经验 获得超5个赞
str.split 不能这样做,因此您可以通过以下方式拆分字符串:
第一个是使用re:
import re
re.split("+|=", "H2 + O2 = 2H2O")
二是手动拆分:
mendeleev = []
cur = ""
for char in "H2 + O2 = 2H2O":
if char in "+=":
mendeleev.append(cur)
cur = ""
else:
cur += char
请记住,您应该 strip() 您的列表元素(或先执行 str.replace(" ", ""))。
添加回答
举报