如果前后字符不是空格,则如何用空格替换圆括号“()”,否则删除圆括号

2024-05-23 21:15:58 发布

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

我希望我的文字转换成args deep peed

    import re
    originalFile = "args(deep) ( deep ) peed)"
    print(originalFile)
    originalFile = re.sub(r'((\s+)[\( \)])',r'', re.sub(r'([A-Za-z0-                9][\( \)])',r' ', originalFile))
    print(originalFile)

但是在运行代码时我得到了输出

    args(deeo) ( deep ) peed)
    arg dee dee pee

Tags: 代码importreargargsdee文字print
2条回答

您可以使用类似以下的正则表达式(替换为空格),并在后面立即调用strip()

\s*[()][\s()]*

参见regex demo。你知道吗

正则表达式详细信息

  • \s*-0+空格
  • [()]-a )(
  • [\s()]*-0+空格、()字符。你知道吗

Python demo

import re
originalFile = "args(deep) ( deep ) peed)"
print(re.sub(r"\s*[()][\s()]*", " ", originalFile).strip())
# => args deep deep peed

方法1

可以将每个括号替换为一个空格,然后过滤多个空格:

import re
t = t.replace("(", " ")
t = t.replace(")", " ")
re.sub(' +', ' ', t)

方法2

使用以下regex

re.sub("(\s*[()]\s*)+", " ", t) 

相关问题 更多 >