python - python正则表达式不会忽略行尾的空格

标签 python regex

前导空格被忽略,但尾随空格不在下面的正则表达式代码中。它只是一个 "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!

我错过了什么?

最佳答案

由于 .+ 的贪婪性质,您会得到尾随空格。

您可以使用此正则表达式来正确捕获您的值:

>>> re.search(r"\s*(Name)\s*=\s*(.+?)\s*$", line).groups()
('Name', 'Peppa Pig')

\s*$ 确保我们在末尾的尾随空格之前捕获值。

关于python - python正则表达式不会忽略行尾的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39153613/

相关文章:

python - 使用自定义编译的 Python 通过 pip 安装无法使用 SSL

python - 将 Django 用于非 http 请求

python - 以任何方式保存 pandas styler 对象

regex - Nginx request_uri没有参数

python - 从 C 扩展返回 C 字符串数组

css - Stylelint : Max Specificity Selector with Regex

php - 用于点和数字验证的正则表达式

javascript - 正则表达式更改引用样式

java - 如何从长字符串中取出特定字符串

python - 如何在不更改字节的情况下将字符串转换为 float ?