1

次のように、大文字の bbcode タグを小文字に置き換えようとしています。

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

しかし、大量のタグを置き換える必要があるため、それぞれのコンパイルは行っていません。[(.*?)] を使用すると、サブはとにかく同じ大文字に置き換えられます。

質問は次のとおりです。

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 に答える