我试图将一串单词和数字转换成一个列表,每个项目都用空格分隔,所以使用。replace(",").split(",")将是一个简单的解决方案,但不幸的是,有时对象名称中有多个单词,我希望将这些单词与_
连接起来。的例子:
office supplies 674.56 570.980487 755.84 682.360029
预期输出:office_supplies 674.56 570.980487 755.84 682.360029
我发现了这个:只替换字母之间的空格
并尝试像这样实现它:
sample_line = "office supplies 674.56 570.980487 755.84 682.360029"
regex = re.compile(':%s/v(a)s(a)/1_2/g', re.I)
print(re.sub(p, r"12", line))
但它似乎并没有取代空格,我不是很尖锐的正则表达式,但根据链接的问题,它应该工作。
您可能会使用以下re.sub + split
解决方案:
import re
s = 'office supplies 674.56 570.980487 755.84 682.360029'
print ( re.sub(r'(?<=[a-zA-Z])s+(?=[a-zA-Z])', '_', s).split() )
输出:
['office_supplies', '674.56', '570.980487', '755.84', '682.360029']
:
- Regex
(?<=[a-zA-Z])s+(?=[a-zA-Z])
匹配1+被字母包围的空白 split
将分割空白字符串
x=r'office supplies 674.56 570.980487 755.84 682.360029'
lead="_".join(x.split()[:2])
trail=" ".join(x.split()[2:])
expected_string = lead + " " + trail
print(expected_string)