1

そこで、次のコードについて質問があります。

def OnChanMsg(self, nick, channel, message):
        if 'Username' in nick.GetNick():
            stripped = message.s.strip() #strips leading and lagging whitespaces
            regex = re.compile("\x1f|\x02|\x12|\x0f|\x16|\x03(?:\d{1,2}(?:,\d{1,2})?)?", re.UNICODE) #recompiles the mesasge minus colorcodes, bold etc
            ircstripped = regex.sub("", stripped) 
            all = re.findall(r'test\ for\ (.*)\: ->\ (.*)\ \((.*)\)\ -\ \((.*)\)\ - \((.*)\).*', ircstripped)

したがって、私の質問は次のとおりです。1)コードが行うことは、"(?:\d{1,2}(?:,\d{1,2})?)?"一部を除いて比較的明確です。それが何をし、どのように機能するのか理解できません。Googleをチェックしました開発者のコ​​ードスクールのビデオ、私はPythonのドキュメントもチェックしましたが、私の目標がIRCメッセージから色やその他のさまざまなフォーマットを取り除くことである場合、この部分は(可能であれば)素人の言葉で正確に何をしますか.

スレッド内でこれを見つけました: mIRC ユーザーが使用するカラー コードを削除するには?

(?: ... ) は、括弧内に見つかったものを格納することを忘れるように指示します (後方参照する必要がないため)、? は 0 または 1 に一致することを意味し、{n,m} は前のグループ化の n と m に一致することを意味します。最後に、\d は [0-9] に一致することを意味します。

しかし、私は本当にそれを理解していません=/

4

2 に答える 2