1

我正在尝试将一些大写的 bbcode 标签替换为小写,如下所示:

p=re.compile(r'\[URL="(.*?)"\](.*?)\[/URL\]',re.S+re.I)
message=p.sub('[url=\\1]\\2[/url]',message)

但是我需要替换大量标签,所以我不会为每个标签进行编译。如果我使用 [(.*?)],则 sub 无论如何都会替换为相同的大写字母。

所以问题是:

如何在 Python 中使用 RE 替换和小写 2 个或更多组

4

1 回答 1

1

那么,我从这里对 1 组使用了简单的方法:

使用正则表达式将python中的大写重复字母替换为单个小写字母

text='dsads [QUOTE]test[/QUOTE]<br><br>[URL=http://test.com]what[/URL] dsadkd [B]TEST[/B]'

def replacement(match):
  return "["+match.group(1).lower()+"]"

>>> re.sub(r'\[(.*?)\]', replacement, text)
RESULT: 'dsads [quote]test[/quote]<br><br>[url=http://test.com]what[/url] dsadkd [b]TEST[/b]'
于 2013-06-05T01:41:48.980 回答