gpt4 book ai didi

python 正则表达式重复模式

转载 作者:行者123 更新时间:2023-12-04 02:26:27 25 4
gpt4 key购买 nike

我正在寻找匹配的正则表达式:

[文档 n] m

只有当n=m时才能去掉[document n]

其中n是任意数字

所以 [document 34] 34 会匹配但是 [document 34] 45 不会匹配,因为数字不同

到目前为止我有这个:

import re
text = "[document 23] 23 and [document 34] 48 are white"
text = re.sub(r"(\[document \d+\] )(\d+)",r"\2. ",text)

但这并不能保证数字相等。

有什么想法吗?

最佳答案

你可以使用

\[document\s+(\d+)]\s+\1(?!\d)

参见 regex demo .替换为 \1详细信息:

  • \[document - [document 字符串
  • \s+ - 一个或多个空格
  • (\d+) - 第 1 组 (\1):一个或多个数字
  • ] - ] 字符
  • \s+ - 一个或多个空格
  • \1 - 对第 1 组的反向引用
  • (?!\d) - 如果当前位置右侧紧邻数字,则匹配失败的否定前瞻。

参见 Python demo :

import re
text = "[document 23] 23 and [document 34] 48 are white [document 24] 240 text"
print( re.sub(r'\[document\s+(\d+)]\s+\1(?!\d)', r'\1', text) )
## => 23 and [document 34] 48 are white [document 24] 240 text

关于python 正则表达式重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67248325/

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