如何将字符串中的字符替换为'#';通过在Python中使用正则表达式

如何将字符串中的字符替换为'#';通过在Python中使用正则表达式,python,regex,string,Python,Regex,String,在Python中,如何用#替换字符串的内容?假设没有注释,一个字符串没有多行。就像python文件中有一行: print 'Hello' + "her mom's shirt". 这将转化为: print '#####' + "###############". 它就像一个过滤器来处理python文件中的每一行。如果您使用的是python,并且您正在解析的是python,那么就没有必要使用regexp。因为不需要正则表达式来用替换“我是超人”“ 试一试 ----编辑 好的,现在我知道您希望输

在Python中,如何用
#
替换字符串的内容?假设没有注释,一个字符串没有多行。就像python文件中有一行:

print 'Hello' + "her mom's shirt".
这将转化为:

print '#####' + "###############".

它就像一个过滤器来处理python文件中的每一行。

如果您使用的是python,并且您正在解析的是python,那么就没有必要使用regexp。因为不需要正则表达式来用
替换
“我是超人”

试一试

----编辑

好的,现在我知道您希望输出来自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()
这不处理换行符,即“.”形式,只会再次测试我拥有的一两个文件

一般来说,最好使用解析器来完成这类工作


Best

“字符串”到底是什么?我指的是python文件中的字符串。就像“我是超人”,那么它将被替换为“############”,更直截了当地说,只是将“”或“”中的内容替换为s。请阅读,为了所有人的利益:这是不可能的(可靠的)仅使用正则表达式。您必须解析代码。感谢您的帮助,但情况是我需要很好地练习python技能如果您想使用正则表达式执行上述操作,它将类似于“print re.sub”(“.”,“#”,input)你没有抓住要点。源文件应该是一个python文件,字符串将从中解析。@AaronMcSmooth,是的,在我写答案时问题发生了变化。你必须在这里快速转一圈。我当时正在回复antonio对他自己问题的评论。我希望字符串中的字符将被替换,b但这不是两个字符串组合后的结果。@antonio081014:根据您得到的回答,您应该很清楚您的问题不清楚。您在帖子中说“这就像一个过滤器,处理python文件中的每一行。“你是说你想在另一个脚本中处理一组Python源文件吗?@drewk:我想写这个Python脚本来处理Python文件。我想问题已经很清楚了,因为他添加了示例。@drewk:非常感谢。我终于明白了。我真的很感激。
>>> 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)
"######## ###'# #####"
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()