Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中实现正则表达式以替换每次出现的;meshname=x";在文本文件中_Python_Python 3.x_Regex_Replace_Io - Fatal编程技术网

在Python中实现正则表达式以替换每次出现的;meshname=x";在文本文件中

在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

我想用“”替换文本文件中的每一行,该行以“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  
{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
    参数)
  • meshname
    -a
    meshname
    word
  • =
    -一个
    =
    字符串
  • *
    -尽可能多的零个或多个字符(断线字符除外)
  • \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+
非常感谢,我想我的正则表达式技能有点生疏了。