我试图获取套接字广播的消息上的最后一个正则表达式匹配项,但它返回空白。你知道吗
>>> msg = ':morgan.freenode.net 353 MechaBot = #xshellz :MechaBot ITechGeek zubuntu whitesn JarodRo SpeedFuse st3v0 anyx danielhyuuga1 AussieKid92 JeDa Failed Guest83885 RiXtEr xryz D-Boy warsoul buggiz rawwBNC MagixZ fedai Sunborn oatgarum dune SamUt Pythonista_ +xinfo madmattco BuGy azuan DarianC stupidpioneers AnTi_MTtr JeDaYoshi|Away PaoLo- StephenS chriscollins Rashk0 morbid1 Lord255 victorix [DS]Matej EvilSoul `|` united Scrawn avira ssnova munsterman Logxen niko gorut Jactive|OFF grauwulf b0lt saapete'
>>> r = re.compile(r"(?P<host>.*?) (?P<code>.*?) (?P<name>.*?) = (?P<msg>.*?)", re.IGNORECASE)
>>> r.search(msg).groups()
(':morgan.freenode.net', '353', 'MechaBot', '')
试试看这个。这个很好。看到了吗演示。你的代码使用
.*?
,它说匹配尽可能少的字符我能。所以呢虽然它是您以前使用过的.*? <space>
,但它匹配到它遇到的第一个空格,在最后一个空格中,您没有指定什么都可以。所以呢它与anythin不匹配,因为它处于延迟模式。你知道吗https://regex101.com/r/aQ3zJ3/1
你也可以使用
上面写着比赛一直拖到最后。你知道吗
相关问题 更多 >
编程相关推荐