所以我对以下代码有疑问:
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})?)?"
部分之外,代码的作用对我来说相对清楚,我只是不明白它的作用以及它是如何工作的,我确实检查了谷歌开发人员 codeschool 视频,我还检查了 python 文档,但是当我的目标是去除 IRC 消息的颜色和其他各种格式时,那么这部分在(如果可能的话)外行术语中到底做了什么。
我在线程中发现了这个: 如何去除 mIRC 用户使用的颜色代码?
(?: ... ) 表示忘记存储在括号中找到的内容(因为我们不需要反向引用它),?表示匹配 0 或 1,{n,m} 表示将 n 匹配到前一个分组的 m。最后,\d 表示匹配 [0-9]。
但我并没有真正理解它=/