两个子字符串之间的较小字符串

2024-06-01 03:35:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解析IRC日志,如下所示:

2013-09-26T01:52:40  <Shan-x> some stuff

我想要伪代码,所以我使用re

re.search('%s(.*)%s' % ('<', '>'), s).group(1)

但是如果日志是这样的:

2013-09-26T01:52:40  <Shan-x> some stuff > foo bar

然后,我得到:Shan-x> some stuff。我怎样才能解析为只有伪代码


Tags: 代码researchfooircgroupbarsome
1条回答
网友
1楼 · 发布于 2024-06-01 03:35:30

您需要通过向*量词添加?使.*非贪婪

re.search('%s(.*?)%s' % ('<', '>'), s).group(1)

现在.匹配满足模式的最小字符数,而不是默认的最大字符数

不过,不知道为什么在这里使用字符串插值;对于静态字符,只需使用:

re.search('<(.*?)>', s).group(1)

您还可以捕获与结束字符不匹配的所有字符:

re.search('<([^>]*)>', s).group(1)

这里[^>]形成一个字符类,与类中而非的任何字符相匹配;因此,任何不是>的字符都将符合条件

相关问题 更多 >