如何检查一行是否以python中的单词或制表符或空格开头?

时间:2015-03-10 06:39:09

标签: python python-3.x

有人可以告诉我如何检查一行是否以字符串或空格或制表符开头?我试过了,但没有工作..

if line.startswith(\s):
    outFile.write(line);

下面是samp数据..

female 752.9
    external 752.40
        specified type NEC 752.49
    internal NEC 752.9
male (external and internal) 752.9
    epispadias 752.62"
    hidden penis 752.65
    hydrocele, congenital 778.6
    hypospadias 752.61"*

5 个答案:

答案 0 :(得分:8)

检查行是否以空格或制表符开头。

if re.match(r'\s', line):

\s也会匹配换行符。

OR

if re.match(r'[ \t]', line):

检查一行是否以单词字符开头。

if re.match(r'\w', line):

检查一行是否以非空格字符开头。

if re.match(r'\S', line):

示例:

>>> re.match(r'[ \t]', '  foo')
<_sre.SRE_Match object; span=(0, 1), match=' '>
>>> re.match(r'[ \t]', 'foo')
>>> re.match(r'\w', 'foo')
<_sre.SRE_Match object; span=(0, 1), match='f'>
>>> 

答案 1 :(得分:5)

要检查行是否以空格或制表符开头,您可以将元组传递给.startswith。如果字符串以元组中的任何元素开头,它将返回True

if line.startswith((' ', '\t')):
  print('Leading Whitespace!')
else:
  print('No Leading Whitespace')

e.g:

>>> ' foo'.startswith((' ', '\t'))
True
>>> '   foo'.startswith((' ', '\t'))
True
>>> 'foo'.startswith((' ', '\t'))
False

答案 2 :(得分:2)

from string import whitespace

def wspace(string):
    first_character = string[0]  # Get the first character in the line.
    return True if first_character in whitespace else False

line1 = '\nSpam!'
line2 = '\tSpam!'
line3 = 'Spam!'

>>> wspace(line1)
True
>>> wspace(line2)
True
>>> wspace(line3)
False

>>> whitespace
'\t\n\x0b\x0c\r '

希望这没有解释就足够了。

答案 3 :(得分:1)

  

一行是以字或标签开头还是以python中的空格开头

if re.match(r'[^ \t].*', line):
     print "line starts with word"

答案 4 :(得分:0)

基本上与亚历山大的答案相同,但表达为没有正则表达式的单行。

from string import whitespace

if line.startswith(tuple(w for w in whitespace)): 
    outFile.write(line);