Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 html2text正则表达式性能_Python_Regex - Fatal编程技术网

Python html2text正则表达式性能

Python html2text正则表达式性能,python,regex,Python,Regex,我已经构建了一个html到纯文本的正则表达式序列。我在多达100个线程中使用它来清理html文件。我想要得到给定html文件的所有可见文本信息 self.content = re.sub(r'<!--(.|\n)*?-->', '', self.content) self.content = re.sub(r'<script (.|\n)*?>(.|\n)*?</script>', '', self.content) self.cont

我已经构建了一个html到纯文本的正则表达式序列。我在多达100个线程中使用它来清理html文件。我想要得到给定html文件的所有可见文本信息

    self.content = re.sub(r'<!--(.|\n)*?-->', '', self.content)
    self.content = re.sub(r'<script (.|\n)*?>(.|\n)*?</script>', '', self.content)
    self.content = re.sub(r'<style (.|\n)*?>(.|\n)*?</style>', '', self.content)
    self.content = re.sub(r'(<[^>]*?>+)', ' ', self.content)
self.content=re.sub(r'','',self.content)
self.content=re.sub(r'(.|\n)*?','',self.content)
self.content=re.sub(r'(.|\n)*?','',self.content)
self.content=re.sub(r'(]*?>+)','',self.content)
我不是一个真正的正则表达式专家。也许我可以改进这个正则表达式的性能

<>我不想使用漂亮的SOAP或Django或HTML2TeXC++分布。它们在测试后比我的正则表达式慢。我只需要一个空格分隔的字符串,而不是一棵树或链接等


谢谢你的帮助。我知道在stackoverflow上有一些非常聪明的人

使用像BeautifulSoup或HTMLIB这样的工具,不要试图比世界其他地方更聪明。使用正则表达式解析HTML是最糟糕的事情!您的正则表达式总是会有一个或多个Html文件失败。

有一个共同的信条,即必须使用正则表达式工具处理Html和XML文本。你必须考虑到,这种治疗的风险是真实存在的,如果为了太多的雄心勃勃的目标而实施,就不可能控制。HTML和XML是非常复杂的标记语言,无法由正则表达式进行分析

然而,我并不完全赞同这个共同信条。在我看来,如果在合理地认为合法使用regex的条件下使用regex并不是一个非常荒谬的方法,因为风险似乎最小

  • 我相信正则表达式可以用于有限和简单地处理HTML或XML文本。我在Stacof.com上了解到,用正则表达式解析HTML/XML是不可行的。但是当解析(提取标记树的全部或部分)不包含在处理中时,为什么要如此虔诚地拒绝正则表达式(我指的是引用的链接)

  • 在我看来,一个好的安全步骤是限制使用regex工具的代码仅在来自固定来源的文本上使用,而不是试图使其分析各种HTM或XML文本

在这些警告之后,我敢对您的REs提出以下改进:

re.sub('<!--.*?-->', '', self.content, flags=re.DOTALL)
re.sub(“”,”,self.content,flags=re.DOTALL)

re.sub(“”,”,self.content,flags=re.DOTALL)
呢?如果结束符
在Javascript字符串中,该怎么办?人们不在html上使用正则表达式是有原因的。我必须链接到这个答案:
re.sub('<(script|style) .*?\\1>', '', self.content, flags=re.DOTALL)