gpt4 book ai didi

Python正则表达式字符串替换

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

我有兴趣找到任何发生的情况

(somenumber)

并将其替换为

-somenumber

我有 Perl 背景并尝试过这个,希望 (\d+) 分组能够填充变量 $1:

myterm = re.sub(r"\((\d+)\)", "-\$1",myterm)

然而这导致了文字的结果

-$1 

如何在 Python 中执行此操作?

最佳答案

我发现两个问题:

  1. 您正在使用 Perl 的语法(美元符号)来取消引用位置匹配。 Python 使用 \,而不是 $

  2. "-\$1 中的反斜杠正在由 Python 编译器解释,并在 re.sub 看到它之前被有效删除。

使用原始字符串(如问题评论中所述)或转义反斜杠(通过双反斜杠)应该可以修复它:

myterm = re.sub(r"\((\d+)\)", r"-\1", myterm)

myterm = re.sub(r"\((\d+)\)", "-\\1", myterm)

测试并确认:

import re

myterm = '(1234)'

# OP's attempt:
print re.sub(r"\((\d+)\)", "-\$1", myterm)

# two ways to fix:
print re.sub(r"\((\d+)\)", r"-\1", myterm)
print re.sub(r"\((\d+)\)", "-\\1", myterm)

打印:

-\$1
-1234
-1234

关于Python正则表达式字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48177892/

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