在python中替换括号之间的文本

2024-05-26 07:45:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我的字符串将包含()在其中。我需要做的是改变括号内的文字。在

示例字符串:"B.TECH(CS,IT)"。 在我的字符串中,我需要将括号内的内容改为如下。。B.TECH(ECE,EEE)

我试图解决这个问题的方法如下。。在

reg = r'(()([\s\S]*?)())'
a = 'B.TECH(CS,IT)'
re.sub(reg,"(ECE,EEE)",a)

但我有这样的输出。。在

^{pr2}$

有效的输出应该是这样的。。在

B.TECH(CS,IT)

我在哪里失踪了以及如何正确地替换文本。在


Tags: 方法字符串文本re示例内容itreg
2条回答

问题是您使用的是括号,这在RegEx中有另一种含义。它们被用作分组字符,以捕获输出。在

您需要将()转义为文本标记。您可以使用反斜杠字符转义字符:\(。在

下面是一个例子:

reg = r'\([\s\S]*\)'
a = 'B.TECH(CS,IT)'
re.sub(reg, '(ECE,EEE)', a)
# == 'B.TECH(ECE,EEE)'

正则表达式不起作用的原因是您试图匹配括号,括号在正则表达式中被认为是元字符。()实际上捕获了一个空字符串,并将尝试替换它。这就是为什么你得到你看到的输出。在

要解决这个问题,你需要摆脱那些帕伦人的困扰

\(...\)

对于您的特定用例,我可以建议一个更简单的模式吗?在

^{pr2}$

相关问题 更多 >