我有以下字符串
“样品”
然而,在某些情况下,开头可能会有一个或多个空格:
“样品”或“样品”
如果没有使用trim,我可以使用哪个正则表达式进行匹配?我正在使用(\ s +)作为当前的String。我希望将空间作为同一组的一部分包含在内。
答案 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
,直到找不到空格。