gpt4 book ai didi

python 的 re : replace regex to regex

转载 作者:行者123 更新时间:2023-11-28 20:51:38 26 4
gpt4 key购买 nike

我必须用找到的文本替换文本。像这样:

regex = u'barbar'
oldstring = u'BarBaR barbarian BarbaRONt'
pattern = re.compile(regex, re.UNICODE | re.DOTALL | re.IGNORECASE)
newstring = pattern.sub(.....)
print(newstring) # And here is what I want to see
>>> u'TEXT1BarBaRTEXT2 TEXT1barbarTEXT2ian TEXT1BarbaRTEXT2ONt'

所以我想收到我的原始文本,其中每个匹配“barbar”(忽略大小写)的单词将被两个单词包围,TEXT1TEXT2。返回值必须是 unicode 字符串。我怎样才能意识到呢?谢谢!

最佳答案

您可以为此使用捕获组:

regex = u'(barbar)'
...
pattern.sub('TEXT1\\1TEXT2', oldstring)
# => u'TEXT1BarBaRTEXT2 TEXT1barbarTEXT2ian TEXT1BarbaRTEXT2ONt'

barbar 放入括号中,使 regexp 将字符串中与这部分 regexp 匹配的每个部分捕获到一个组中。因为它是第一个(也是唯一一个)捕获组,所以您可以在替换字符串或正则表达式本身的任何位置将其称为 \1

有关更多说明,请参阅 docs 中的 (...)\number 部分.

顺便说一句,如果您不喜欢在组号之前转义斜杠,您可以改用原始字符串:

pattern.sub(r'TEXT1\1TEXT2', oldstring)

关于python 的 re : replace regex to regex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062141/

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