我可以编写一个def函数来完成此任务。但是,我想知道是否可以通过任何方式像string.replace('a',' ')
input = "This is a regular text"
output = "This is_a regular_text"
答案 0 :(得分:5)
使用正则表达式匹配单词之间的单个空格并将其替换为下划线:
import re
inp = "This is a regular text"
print(re.sub(r'(?<! ) (?! )', '_', inp))
# This is_a regular_text
答案 1 :(得分:1)
我对您的问题的看法是,您想在带偶数的单词之间插入下划线而不是空格。这意味着第二个和第四个空格将被下划线替换。
我们可以尝试在(\s+)
上分割输入字符串,这将保留文本和空格。然后,迭代结果列表并为偶数空格插入下划线。
input = "This is a regular text"
parts = re.split(r'(\s+)', input)
output = ""
for i in range(0, len(parts)):
if (i+1) % 4 == 0:
output = output + "_"
else:
output = output + parts[i]
print(output)
这将输出:
This is_a regular_text