不允许空格作为最后字符
我有一个Python的正则表达式:[A-Za-z0-9_\s]+
我想知道怎么设置它,让它可以包含空格,但不允许空格出现在最后一个字符的位置。
给定这个字符串:
"Monthly Report Aug 27th 2013 - New York"
我希望它能匹配:
"Monthly Report Aug 27th 2013"
而不是:
"Monthly Report Aug 27th 2013 "
4 个回答
0
0
试试这样的写法:[A-Za-z0-9_\s]+[A-Za-z0-9_]。你只需要在这个规则的最后加一个不匹配空格的字符。
1
Python支持一种叫做“非空白字符”的通配符:\S
(大写的通配符通常表示与小写相反的意思)。所以你可以使用类似这样的东西:
r'[A-Za-z0-9_\s]+\S$'
3
我会这样写:
[A-Za-z0-9_]+(?:\s+[A-Za-z0-9_]+)*
注意:如果你不使用 re.LOCALE
或 re.UNICODE
选项,那么这个模式可以简化为:
\w+(?:\s+\w+)*