2024-06-01 03:35:30 发布
网友
我正在尝试解析IRC日志,如下所示:
2013-09-26T01:52:40 <Shan-x> some stuff
我想要伪代码,所以我使用re:
re
re.search('%s(.*)%s' % ('<', '>'), s).group(1)
但是如果日志是这样的:
2013-09-26T01:52:40 <Shan-x> some stuff > foo bar
然后,我得到:Shan-x> some stuff。我怎样才能解析为只有伪代码
Shan-x> some stuff
您需要通过向*量词添加?使.*非贪婪:
*
?
.*
re.search('%s(.*?)%s' % ('<', '>'), s).group(1)
现在.匹配满足模式的最小字符数,而不是默认的最大字符数
.
不过,不知道为什么在这里使用字符串插值;对于静态字符,只需使用:
re.search('<(.*?)>', s).group(1)
您还可以捕获与结束字符不匹配的所有字符:
re.search('<([^>]*)>', s).group(1)
这里[^>]形成一个字符类,与类中而非的任何字符相匹配;因此,任何不是>的字符都将符合条件
[^>]
>
您需要通过向
*
量词添加?
使.*
非贪婪:现在
.
匹配满足模式的最小字符数,而不是默认的最大字符数不过,不知道为什么在这里使用字符串插值;对于静态字符,只需使用:
您还可以捕获与结束字符不匹配的所有字符:
这里
[^>]
形成一个字符类,与类中而非的任何字符相匹配;因此,任何不是>
的字符都将符合条件相关问题 更多 >
编程相关推荐