Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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将多行字符串替换为正则表达式_Python_Regex - Fatal编程技术网

使用python将多行字符串替换为正则表达式

使用python将多行字符串替换为正则表达式,python,regex,Python,Regex,我的代码不起作用,它的输出还是一样的 from sys import argv import re script, filename = argv f = open(filename, "r") str = f.read() f.close() str2 = re.sub("<start>.*</start>","aa",str,re.DOTALL | re.M) print str2 从系统导入argv 进口稀土 脚本,文件名=argv f=打开(文件名为“r”)

我的代码不起作用,它的输出还是一样的

from sys import argv
import re

script, filename = argv
f = open(filename, "r")
str = f.read()
f.close()
str2 = re.sub("<start>.*</start>","aa",str,re.DOTALL | re.M)
print str2
从系统导入argv
进口稀土
脚本,文件名=argv
f=打开(文件名为“r”)
str=f.read()
f、 关闭()
str2=re.sub(“*”、“aa”、str、re.DOTALL | re.M)
打印str2
测试文件

<start><a>
</a><a></a><a></a></start>

这应该起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
>print re.sub(r.“*?”、“aa”、str、0、re.DOTALL)
aa
或者先编译正则表达式:

>>> regex = re.compile(r"<start>.*?</start>", re.DOTALL)
>>> print re.sub(regex, "aa", str)
aa
regex=re.compile(r.“*?”,re.DOTALL) >>>打印参考文件(正则表达式,“aa”,str) aa 或者,即使这样也应该有效:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
打印re.sub(r“[\s\s]*?”,“aa”,str) aa 顺便说一句,避免使用正则表达式解析HTML,因为在某些情况下它可能容易出错。

这应该起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
>print re.sub(r.“*?”、“aa”、str、0、re.DOTALL)
aa
或者先编译正则表达式:

>>> regex = re.compile(r"<start>.*?</start>", re.DOTALL)
>>> print re.sub(regex, "aa", str)
aa
regex=re.compile(r.“*?”,re.DOTALL) >>>打印参考文件(正则表达式,“aa”,str) aa 或者,即使这样也应该有效:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
打印re.sub(r“[\s\s]*?”,“aa”,str) aa 顺便说一句,避免使用正则表达式解析HTML,因为在某些情况下它可能容易出错。

这应该起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
>print re.sub(r.“*?”、“aa”、str、0、re.DOTALL)
aa
或者先编译正则表达式:

>>> regex = re.compile(r"<start>.*?</start>", re.DOTALL)
>>> print re.sub(regex, "aa", str)
aa
regex=re.compile(r.“*?”,re.DOTALL) >>>打印参考文件(正则表达式,“aa”,str) aa 或者,即使这样也应该有效:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
打印re.sub(r“[\s\s]*?”,“aa”,str) aa 顺便说一句,避免使用正则表达式解析HTML,因为在某些情况下它可能容易出错。

这应该起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
>print re.sub(r.“*?”、“aa”、str、0、re.DOTALL)
aa
或者先编译正则表达式:

>>> regex = re.compile(r"<start>.*?</start>", re.DOTALL)
>>> print re.sub(regex, "aa", str)
aa
regex=re.compile(r.“*?”,re.DOTALL) >>>打印参考文件(正则表达式,“aa”,str) aa 或者,即使这样也应该有效:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)
打印re.sub(r“[\s\s]*?”,“aa”,str) aa
顺便说一句,请避免使用正则表达式解析HTML,因为在某些情况下,正则表达式很容易出错。

我不确定您的预期结果是什么,但如果您试图替换
之间的所有内容,则以下操作将起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)

这将自动关闭您的文件。最后,最好不要使用变量名
str
,因为它会隐藏Python的
str()
内置函数。

我不确定您的预期结果是什么,但如果您试图替换
之间的所有内容,则以下操作将起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)

这将自动关闭您的文件。最后,最好不要使用变量名
str
,因为它会隐藏Python的
str()
内置函数。

我不确定您的预期结果是什么,但如果您试图替换
之间的所有内容,则以下操作将起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)

这将自动关闭您的文件。最后,最好不要使用变量名
str
,因为它会隐藏Python的
str()
内置函数。

我不确定您的预期结果是什么,但如果您试图替换
之间的所有内容,则以下操作将起作用:

>>> print re.sub(r"<start>.*?</start>", "aa", str, 0, re.DOTALL)
aa
>>> print re.sub(r"<start>[\s\S]*?</start>", "aa", str)
aa
text = """<start><a>
</a><a></a><a></a></start>"""

print re.sub(r'(\<start\>).*(\<\/start\>)', r"\1aa\2", text, flags=re.DOTALL | re.M)

这将自动关闭您的文件。最后,最好不要使用变量名
str
,因为它会隐藏Python的
str()
内置函数。

您说它不起作用。但是你还没有说你的代码应该做什么?或者它是如何不起作用的,你还得到了什么?你说它不起作用。但是你还没有说你的代码应该做什么?或者它是如何不起作用的,你还得到了什么?你说它不起作用。但是你还没有说你的代码应该做什么?或者它是如何不起作用的,你还得到了什么?你说它不起作用。但是你还没有说你的代码应该做什么?或者它是如何不起作用的,你还能得到什么?