regex 高级使用re.sub()

jchrr9hc  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(102)

我想做一个算法,将如果要求得到满足,删除文本的一部分,留下它的一部分,并在第二部分添加它的具体结束。
示例:

screen.add(SUBTITLES("Remove the Pirates from the Ship"), {}, function()

输出:

screen.add("Remove the Pirates from the Ship", {}, function()

要求:要删除的文本将大写。它将在(之后开始。它需要在完成后具有("。我们希望保持""之间的文本不变,并删除末尾的),因为此处不需要它。
您可能会看到我没有关闭screen.add的左括号,这是因为我稍后关闭了它们。我需要使用Python来完成此操作。如果可能,最好使用re.sub().我知道在两个独立的re.sub中很容易做到这一点()调用,但是否可以将所有需求(删除、不接触文本以及删除文本后面的))放在一个re. sub()中?

c3frrgcw

c3frrgcw1#

如果引号部分是唯一出现在括号之间的部分,并且引号部分本身没有双引号(可能是转义的?),那么下面的代码就可以做到:

import re

s = """screen.add(SUBTITLES("Remove the Pirates from the Ship"), {}, function()"""
result = re.sub(r'\([A-Z]+\(("[^"]*")\)', r'(\1', s)

相关问题