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

新手上路,请多包涵

有人能告诉我如何检查一行是以字符串、空格还是制表符开头的吗?我试过这个,但没有工作..

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

下面是示例数据..

 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"*

原文由 Pavan Chakravarthy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 766
2 个回答

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

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

\s 也匹配换行符。

或者

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'>
>>>

原文由 Avinash Raj 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

例如:

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

原文由 mgilson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题