有人可以告诉我如何检查一行是否以字符串或空格或制表符开头?我试过了,但没有工作..
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"*
答案 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);