gpt4 book ai didi

Python 单个语句中的多个正则表达式匹配

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:23 26 4
gpt4 key购买 nike

我有一个很大的 Python 字符串,如下所示。

large_string = "The MIT License (MIT)\n\nCopyright (c) [year] [fullname]\n\nPermission is hereby granted, free of charge, to any person obtaining a ...."

我想将字符串中的“[year]”替换为当前年份,将“[fullname]”替换为用户提供的名称。我正在使用 python 中的 re 库来完成此任务。

import re
import datetime

def pattern_replace(large_string, name):
year = datetime.now().year
large_string = re.sub('\[year\]', str(year), large_string)
large_string = re.sub('\[fullname\]', name, large_string)
return large_string

但我认为这不是合适的方式。我以前从未真正使用过正则表达式匹配,但我认为应该有一种更 Pythonic 的方式来组合两个 re.sub 语句。

最佳答案

如果您只使用两个正则表达式而不是一个正则表达式,那么任务会简单得多。

如果将它们合二为一,就会使其变得更加脆弱(即依赖于两者的顺序),并且正则表达式需要更加复杂。

你可以这样做:

large_string = re.sub('\[year\](.*?)\[fullname\]', str(year) + '\g<1>' + name, large_string)

问问你自己,你觉得哪一个更容易阅读。我建议选择该选项。

关于Python 单个语句中的多个正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34829286/

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