如何匹配表达式python开头的空格?

时间:2012-03-27 20:40:39

标签: python regex

我有以下字符串

“样品”

然而,在某些情况下,开头可能会有一个或多个空格:

“样品”或“样品”

如果没有使用trim,我可以使用哪个正则表达式进行匹配?我正在使用(\ s +)作为当前的String。我希望将空间作为同一组的一部分包含在内。

3 个答案:

答案 0 :(得分:1)

您不需要正则表达式:

s = " Sample"
if s[0] == ' ':
    # do something
else:
    # do something else

但如果你想要正则表达式:

import re
s = ' Sample'
if re.match(r"\s+.+", s):
   # found space at beginning, do something

答案 1 :(得分:1)

"   Sample".lstrip()

lstrip优先的原因是有任意数量的隐藏(或不可打印)字符。为了获得正则表达式来捕获所有的清除,显然有点混乱。清除代码是最好的代码。

可以在正则表达式中使用POSIX字符类,但re模块目前似乎不支持它们。您必须使用支持POSIX类的其他模块(regex 0.1.20120323)。

(注意:新注册,所以我无法'发布超过2个超链接'。)

参考文献:

  • docs.python.org/library/string.html “如果省略字符或无,则删除空白字符。”

  • stackoverflow.com/questions/9897375/how-to-match-a-space-at-the-beginning-of-the-expression-python “POSIX字符类... [:space:] \ s \ s [\ t \ r \ n \ v \ f]空格字符”

  • pypi.python.org/pypi/regex “支持POSIX字符类。这实际上被视为\ p {...}的替代形式。”

  • http://pypi.python.org/pypi/regex “替代正则表达式模块,替换重新。”

答案 2 :(得分:0)

使用find():

s = " Sample"
pos = 0
if s.find(' ') == pos:
    print 'Space found!'

然后,您可以增加pos,直到找不到空格。