正则表达式如何匹配空

2024-05-03 12:24:03 发布

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

我的原木结构看起来像

a b c|

例如:

^{2}$

应与…相匹配

a: Mozilla, b: 5.0, c: white

但我的日志中有一个条目是:

iOS |

可以解释为

a:iOS, b:null, c:null

我用的是python3re,正在和命名组匹配吗?P

有没有办法做到这一点?在


Tags: mozilla条目null命名ioswhite办法木结构
2条回答

您可以将模式放入如下列表中:

>>> pattern = ['a', 'b', 'c']

然后使用re.findall()查找所有相关部分,然后使用zip和{}创建相关字典:

^{pr2}$
>>> m = re.match(r"(?P<a>[^\s]+)(\s+(?P<b>[^\s]+))?(\s+(?P<c>[^\s]+))?\s*\|")

>>> m.groups()
('iOS', None, None)
>>> m.groupdict()
{'c': None, 'a': 'iOS', 'b': None}

>>> m = re.match(r"(?P<a>[^\s]+)(\s+(?P<b>[^\s]+))?(\s+(?P<c>[^\s]+))?\s*\|")

>>> m.groups()
('Mozilla', ' 5.0', ' white')
>>> m.groupdict()
{'c': 'white', 'a': 'Mozilla', 'b': '5.0'}

更新:

我注意到以前的版本在返回的组中包含了空格-我将\s+分解到(?)?P<;>gt;…)来节省几个字节,但它有副作用。所以我修正了这个问题,并在最后一个“|”之前使它能容忍空格

相关问题 更多 >