gpt4 book ai didi

python - 在 Python 中使用正则表达式替换括号

转载 作者:行者123 更新时间:2023-12-03 21:02:20 28 4
gpt4 key购买 nike

我正在尝试用 1. 和 2 替换围绕数字或单个字母 (1)、(a) 的括号。我想保留较长的单词(reprehenderit)

这是我尝试过的。当我只希望它出现一次时,句号出现在所有前括号的两侧。

谢谢


import re

text = '''Lorem ipsum dolor sit amet,\n\n(1)consectetur adipiscing elit, sed do eiusmod tempor incididunt\n\n(2)ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n\n(a) ex ea (commodo consequat). Duis aute irure dolor in (reprehenderit) in voluptate velit esse cillum dolore eu\n\n(b) fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'''

result = re.sub(r'[\(\)]','.\1', text)

Print(result)


我得到了什么:
Lorem ipsum dolor sit amet,

.1. consectetur adipiscing elit, sed do eiusmod tempor incididunt

.2. ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip

.a. ex ea .commodo consequat.. Duis aute irure dolor in .reprehenderit. in voluptate velit esse cillum dolore eu

.b. fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

我在寻找:
Lorem ipsum dolor sit amet,

1. consectetur adipiscing elit, sed do eiusmod tempor incididunt
2. ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
a. ex ea (commodo consequat). Duis aute irure dolor in (reprehenderit) in voluptate velit esse cillum dolore eu
b. fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

最佳答案

您实际上是在删除任何 ()带有一个点和一个八进制代码的字符 \001 .

如果要更换(...)在一行的开头使用一个字母或数字

result = re.sub(r'^\(([\da-z])\)', r'\1. ', text, flags=re.M)

this regex demo .注意使用 ^仅在行首启用匹配(它与 flags=re.M 标志一起使用)。

当有 1 个以上的数字或字母时删除,请使用
result = re.sub(r'^\((\d+|[a-z]+)\)', r'\1. ', text, flags=re.M)

regex demo .这里,
  • ^ - 匹配行首
  • \( - (字符
  • (\d+|[a-z]+) - 1 个或多个数字或 1 个或多个字母
  • \) - )字符。
  • 关于python - 在 Python 中使用正则表达式替换括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56544824/

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