在Windows和Linux上获取regex结果的不同行为

2024-06-17 14:54:25 发布

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

我运行以下regex来提取字符串中@字符前后的值。在

re.search(r'\S+ @ \S+(?=\n)', output).group().split(' @ ')

示例字符串如下所示:

^{pr2}$

我已经在两个环境上的Python控制台中测试了这一点,并且它按照我的意愿工作。在

我遇到的问题是当我在Windows上运行nose测试时,我在那一行得到一个AttributeError: 'NoneType' object has no attribute 'group'错误。然而,在Linux上运行nose测试时不会发生这种情况。在


Tags: 字符串re示例outputsearch环境windowsgroup
1条回答
网友
1楼 · 发布于 2024-06-17 14:54:25

您有一个问题,因为您将\n作为换行符。在Windows中,需要指定\r\n。因此,要同时支持Windows和Linux环境,请使用

r'\S+ @ \S+(?=\r?\n)'

另外,在访问.group()之前,您应该检查是否存在匹配项。在

相关问题 更多 >