在Python中实现正则表达式以替换每次出现的;meshname=x";在文本文件中
我想用“”替换文本文件中的每一行,该行以“meshname=”开头,以任意字母/数字和下划线组合结尾。我在CS中使用了正则表达式,但我从未真正理解Python中的不同符号。你能帮我吗 对于我的问题,这是正确的正则表达式吗?我如何将其转换为Python正则表达式在Python中实现正则表达式以替换每次出现的;meshname=x";在文本文件中,python,python-3.x,regex,replace,io,Python,Python 3.x,Regex,Replace,Io,我想用“”替换文本文件中的每一行,该行以“meshname=”开头,以任意字母/数字和下划线组合结尾。我在CS中使用了正则表达式,但我从未真正理解Python中的不同符号。你能帮我吗 对于我的问题,这是正确的正则表达式吗?我如何将其转换为Python正则表达式 m.e.s.h.n.a.m.e.' '.=.' '.{{_}*,{0,...,9}*,{a,...,z}*,{A,...,Z}*}* x.y = Concatenation of x and y ' ' = whitespace
m.e.s.h.n.a.m.e.' '.=.' '.{{_}*,{0,...,9}*,{a,...,z}*,{A,...,Z}*}*
x.y = Concatenation of x and y
' ' = whitespace
{x} = set containing x
x* = x.x.x. ... .x or empty word
要替换包含meshname=…的文件中的每个字符串/行,脚本将是什么样子的。。。使用Python正则表达式?像这样的
fin = open("test.txt", 'r')
data = fin.read()
data = data.replace("^meshname = [[a-z]*[A-Z]*[0-9]*[_]*]+", "")
fin.close()
fin = open("test.txt", 'w')
fin.write(data)
fin.close()
还是这完全错了?我曾尝试使用这种方法使其工作,但不知何故它从未匹配正确的字符串:按照当前的代码逻辑,您可以使用
data=re.sub(r'^meshname=.*\w$,'',数据,标志=re.M)
re.sub
将用空格替换匹配的任何行
行开始(注意确保多行模式打开的^
参数)flags=re.M
-ameshname
wordmeshname
-一个=
字符串=
-尽可能多的零个或多个字符(断线字符除外)*
-字母/数字/\w
\uu
-行结束$
str.replace
中使用正则表达式,您需要re.sub
是的,我在的帮助下尝试过,但没有成功。我的正则表达式可能是错的,是的/是的,它应该是data=re.sub(r'^meshname=.*\w$,'',data,flags=re.M)
为什么[[a-z]*[a-z]*[0-9]*[\u]*]+
?只需使用[A-Za-z0-9\]+
或\w+
非常感谢,我想我的正则表达式技能有点生疏了。