前导空格被忽略,但尾随空格不在下面的正则表达式代码中.它只是一个"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!
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
你因为贪婪的性质而得到了尾随的空间.+.
您可以使用此正则表达式来正确捕获您的值:
>>> re.search(r"\s*(Name)\s*=\s*(.+?)\s*$", line).groups()
('Name', 'Peppa Pig')
Run Code Online (Sandbox Code Playgroud)
\s*$ 确保我们在结尾处追踪空白之前捕获价值.
| 归档时间: |
|
| 查看次数: |
873 次 |
| 最近记录: |