在python中用一些值替换超过空白的部分
我想用“@”替换字符串中的多个空格。 如果有一个空格,它应该是完整的,但如果有多个连续的空格,它将保留一个并附加@。比如说在python中用一些值替换超过空白的部分,python,Python,我想用“@”替换字符串中的多个空格。 如果有一个空格,它应该是完整的,但如果有多个连续的空格,它将保留一个并附加@。比如说 s = "Hello how are you." 将成为 "Hello how @are @@you" Python 2.7: import re s = "Hello how are you" s = re.sub("(?<= ) ", "@" ,s) print s 重新导入 s=“你好,你好吗” s=re.sub((?Python2.7: i
s = "Hello how are you."
将成为
"Hello how @are @@you"
Python 2.7:
import re
s = "Hello how are you"
s = re.sub("(?<= ) ", "@" ,s)
print s
重新导入
s=“你好,你好吗”
s=re.sub((?Python2.7:
import re
s = "Hello how are you"
s = re.sub("(?<= ) ", "@" ,s)
print s
重新导入
s=“你好,你好吗”
s=re.sub((?Edit):在查看了问题的来源后,我的答案没有修复它。我看不到源字符串中的额外空格。sg.sysel建议使用正则表达式可以很好地完成这项工作
如果您确实希望自己使用循环进行此操作:
def addats(s):
i = 0
r = ''
for c in s:
if c == ' ':
if i > 0:
r += '@'
else:
r += ' '
i += 1
else:
r += c
i = 0
return r
请注意,对于真正的应用程序,您应该在r
中使用一些可变的内容,例如列表,而不是字符串,但这应该可以解决您眼前的问题。编辑:查看了问题的源代码后,我的答案没有解决问题。我看不到源字符串中的额外空格。正则表达式为sg.sysel-suggEST将很好地完成这项工作
如果您确实希望自己使用循环进行此操作:
def addats(s):
i = 0
r = ''
for c in s:
if c == ' ':
if i > 0:
r += '@'
else:
r += ' '
i += 1
else:
r += c
i = 0
return r
请注意,对于一个实际的应用程序,您应该在r
中使用一些可变的东西,比如列表,而不是字符串,但这应该可以解决您眼前的问题。这是一个很好的答案,如果您对正则表达式提供一个简短的解释,这将有所改进。@asongtoruin我添加了一个解释(据我所知)@t、 m.adam我不同意-从OP的帖子的显示方式来看是这样的,但是如果你进入“编辑”,你会看到它有多个空格。非常感谢,这正是我想要的:)这是一个很好的答案,如果你对正则表达式做一个简短的解释,这将得到改进。@asongtoruin我添加了一个解释(据我所知)@t.m.adam我不同意-从OP的帖子显示的方式来看是这样的,但如果你进入“编辑”,你会看到它有多个空格。非常感谢,这正是我想要的:)