我只想用逗号替换这个特殊模式的空格,而不是所有空格:“21311自动售货机”
输入:
["dog,cat ax 21311 asd","131 MAN"]
所需输出:
["dog,cat ax 21311,asd","131,MAN"]
编码:
input = ["dog,cat ax 21311 asd","131 MAN"]
new_list = []
for i in input:
word = re.findall(r"\d*\s[a-zA-Z]*" , i)
new_word = re.sub(word , r"\d*\s[a-zA-Z]*" , i)
new_list = new_list + new_word
print(new_list)
我知道这是错误的语法,但我不知道如何使用Regex或任何其他方法。
我使用Python 3和Jupyter笔记本。
4条答案
按热度按时间mrfwxfqh1#
试试看:
8cdiaqws2#
好了,现在您已经阐明了您的请求,假设您感兴趣的模式是
下面是正确的方法:
re.sub
函数在其repl
参数中接受对匹配组的引用。我们将数字(1)和字母(2)分组,并将子字符串替换为这两个组,中间用逗号隔开。czq61nw13#
你使用的
re.sub()
的参数位置不对,正确的方法是像re.sub(regex, replace, string)
那样调用它。而且你对输入的迭代也不正确。这才是正确的方法:8dtrkrch4#
re.sub()
解和正Lookahead和Lookbehind模式第一个