python - 在 Python 中使用多个正则表达式或更大的正则表达式进行替换

标签 python regex

我最近切换到 Python,我有兴趣通过删除一些特定的标签或一些其他字符串来清理大量的网页(大约 12k)(但可以被认为是简单的文本文件)模式。为此,我在 Python 中使用了 re.sub(..) 函数。

我的问题是(从效率的角度来看)是创建一个匹配我的更多模式的大正则表达式更好,还是使用更小更简单的正则表达式多次调用该函数更好。

举例来说,使用类似的东西是否更好

 re.sub(r"<[^<>]*>", content)
 re.sub(r"some_other_pattern", content)

 re.sub(r"<[^<>]*>|some_other_pattern",content)

当然,为了举例说明,前面的模式非常简单,我没有在这里编译它们,但在我的真实场景中我会。

LE:问题与文件的 HTML 性质无关,而是与 Python 在处理多个正则表达式模式时的行为有关。

谢谢!

最佳答案

保持简单。

我会说使用较小的正则表达式来解析这些东西会更安全。至少这样,如果它表现异常,您不必去挖掘以查找大量 Regex 的哪个特定部分表现异常。如果您对所做的替换有良好的记录,那么如果出现问题,确定问题的根源将是微不足道的。

您不想遇到 this

关于python - 在 Python 中使用多个正则表达式或更大的正则表达式进行替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557222/

相关文章:

python - 在 Python 中优化微分方程中的常数

python - 导入错误 : cannot import name 'det_curve' from 'sklearn.metrics'

python - 检查python中的多个条件

ruby - 表示 "at least one non-digit"的正则表达式

python - 无法使用请求从脚本标签中抓取不同专辑的链接?

python - python中嵌入式循环的多线程

python - 将多元素列表转换为数组

python - 如何从python中具有特定条件的句子中提取数字?

java - 正则表达式:如何用 n 次出现的子字符串替换字符串

python - 重新评估 Python 正则表达式中的字符