如何在Python中用#
替换字符串的内容?假设没有注释,一个字符串没有多行。就好像python文件中有一行:
print 'Hello' + "her mom's shirt".
这将被翻译成:
print '#####' + "###############".
它就像一个处理python文件中每一行的过滤器。
答案 0 :(得分:5)
如果你正在使用Python而你正在解析的东西是Python,那么就不需要使用regexp there's a built-in parser。
答案 1 :(得分:2)
>>> import re
>>> s="The Strings"
>>> s=re.sub("\w","#",s)
>>> s
'### #######'
>>> s='Hello' + "her mom's shirt"
>>> s
"Helloher mom's shirt"
>>> re.sub("\w","#",s)
"######## ###'# #####"
----编辑
好的,现在我明白你希望输出来自Python文件。尝试:
import fileinput
import re
for line in fileinput.input():
iter = re.finditer(r'(\'[^\']+\'|"[^"]+")',line)
for m in iter:
span = m.span()
paren = m.group()[0]
line = line[:span[0]]+paren+'#'*(span[1]-span[0]-2)+paren+line[span[1]:]
print line.rstrip()
这不涉及换行符,“”形式,只能再测试一两个文件......
通常,最好将解析器用于此类工作。
最佳
答案 2 :(得分:1)
不需要使用正则表达式将"I'm superman"
替换为"############"
尝试
input = "I'm superman"
print "#" * len(input)