【发布时间】:2016-08-25 19:48:23
【问题描述】:
前面的空格被忽略,但后面的空格不在下面的正则表达式代码中。它只是一个"Name = Value" 字符串,但带有空格。我以为捕获后的\s* 会忽略空格。
import re
line = " Name = Peppa Pig "
match = re.search(r"\s*(Name)\s*=\s*(.+)\s*", line)
print(match.groups())
>>>('Name', 'Peppa Pig ') # Why extra spaces after Pig!
我错过了什么?
【问题讨论】:
-
不管什么问题都可以使用
match = match.strip()删除前导和尾随空格。 -
查看我对正在发生的事情的解释,以及regex+strip based solution below。
-
@OhadEytan - 是的,我当然可以在 python 中剥离,但我想了解正则表达式的方式,因为该行可能有多个“名称 = 值”对。即在线上可能会有更多捕获
-
可以理解,这就是为什么我以“不管问题”开头的原因