gpt4 book ai didi

Python:连续有很多正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:19 25 4
gpt4 key购买 nike

我有一些文本文件是另一个软件的输出。我有一个用胶带固定在一起的 Perl 脚本,它用一系列将近 100 个连续的正则表达式清理这些脚本。

我是 Python 的新手,想知道是否有比一大块更惯用的方法来处理这个问题,这比 perl 构造要重得多:string =~ s/blah/blah/我;

string = re.sub(r'  +', " ", string, re.I)
string = re.sub(r'(\w)- ', "\1, ", string, re.I)
string = re.sub(r'u-s', "U.S.", string, re.I)

例如某种带有正则表达式及其替代品的字典?我也很好奇连续多次调用模块的函数会如何影响性能?

最佳答案

如果将正则表达式放入元组中,那么遍历元组并执行替换就很容易了。

正则表达式:

import re
regexs = (
(r' +', " ", re.I),
(r'(\w)- ', "\1, ", re.I),
(r'u-s', "U.S.", re.I),
)
compiled_regexs = [(re.compile(rx[0], rx[2]), rx[1]) for rx in regexs]

代码:

for line in lines:
for regex, replace in compiled_regexs:
line = regex.sub(replace, line)
print(line)

测试数据:

lines = (
'Quick Brown Fox',
'u-s lazy dog',
)

结果:

Quick Brown Fox
U.S. lazy dog

关于Python:连续有很多正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42598855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com