gpt4 book ai didi

python - 在 Python 中用 RegEx 替换变量模式

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

我正在 Python 中寻找一个非常特殊的 RegEx(或其他解决方案,性能接近)来替代模式,这些模式在以下示例中:

...-1AG.,., should be transformed as ...G.,.,
..,-1A,.,., should be transformed as ..,,.,.,
...-2GTC,., should be transformed as ...C,.,
..,-2GT.,., should be transformed as ..,.,.,
...+3TAGT,, should be transformed as ...T,,
..,+3TAG.,. should be transformed as ..,.,.

基本上:

AnySymbol(不仅是点和逗号),后跟一个 +/- 符号,后跟一个字母数字 (1..9),再后跟几个字母,其数量取决于前面的数字,最后是 AnySymbol (不仅是点和逗号),

应转换为:

AnySymbol(不仅是点和逗号)和 AnySymbol(不仅是点和逗号)。

显然解决方案:String = re.sub(r'[\-\+]\d\w+', "", String) 是不对的,如果我们有 case (...-1AG.,., 应转换为...G.,.,)。到目前为止,我正在循环 r'[\-\+]1\w', r'[\-\+]2\w\w', r'[\-\+]3\w\w\w' ... r'[\-\+]9\w\w\w\w\w\w\w\w\w',但是我希望有更优雅的解决方案。有什么想法吗?

最佳答案

看看这个工作演示。

x="""...-1AG.,., should be transformed as ...G.,.,
..,-1A,.,., should be transformed as ..,,.,.,
...-2GTC,., should be transformed as ...C,.,
..,-2GT.,., should be transformed as ..,.,.,
...+3TAGT,, should be transformed as ...T,,
..,+3TAG.,. should be transformed as ..,.,."""

def repl(matchobj):
return matchobj.group(2)[int(matchobj.group(1)):]

print re.sub(r"[+-](\d+)([a-zA-Z]+)",repl,x)

您可以在 re.sub 中使用您自己的函数来进行自定义替换。

关于python - 在 Python 中用 RegEx 替换变量模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623248/

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