不要让空间作为最后一个角色

时间:2014-08-02 20:26:50

标签: python regex

我有这个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 :(得分:3)

我会这样写:

[A-Za-z0-9_]+(?:\s+[A-Za-z0-9_]+)*

注意:如果您不使用re.LOCALEre.UNICODE选项,则模式可缩短为:

\w+(?:\s+\w+)*

答案 1 :(得分:1)

Python支持“非空白”通配符:\S(大写的外卡往往与小写相反。)所以你可以使用这样的东西:

r'[A-Za-z0-9_\s]+\S$'

答案 2 :(得分:0)

尝试类似[A-Za-z0-9_ \ s] + [A-Za-z0-9_]的内容。您只需在正则表达式的末尾添加一个额外的字符,该字符与空格不匹配。

答案 3 :(得分:0)

您可以使用此正则表达式

([\w\s]+)\s

<强> Working demo

MATCH 1
1.  [0-28]  `Monthly Report Aug 27th 2013`