我对re有疑问,我试着在纪录片上找回答,但我想我是为了新手。
我有这样的字符串
string = "id=186 s_id=0 channel_name=[cspacer0]---BlaBla--- number=2"
我希望在' ='之后检索所有结果。所以我用了
re.finditer("=[\w]*", string)
我的结果如下
我的模式应该如何获得channel_name?
答案 0 :(得分:1)
\w
令牌只匹配单词字符,以允许我使用\S
(任何非空格字符)的元字符。此外,您可以使用finditer
代替findall
代替此任务:
>>> import re
>>> s = 'id=186 s_id=0 channel_name=[cspacer0]---BlaBla--- number=2'
>>> re.findall(r'=(\S+)', s)
['186', '0', '[cspacer0]---BlaBla---', '2']
原始字符串看起来像这样,我希望从
开始=
跳过=ok
和idx=0
>>> s = 'error idx=0 msg=ok id=186 s_id=0 channel_name=[cspacer0]---BlaBla--- number=2'
>>> re.findall(r'(?<!idx)=(?!ok)(\S+)', s)
['186', '0', '[cspacer0]---BlaBla---', '2']