我正在尝试编写一个正则表达式,该表达式匹配以连字符( - )开头的行,以空格或制表符开头,然后使用连字符。所以它应该匹配以下内容:
- hello!
- hello!
这是我到目前为止所得到的:^(\-)
。但这与上面的第二个例子不匹配,因为它要求第一个字符是连字符。
答案 0 :(得分:40)
你可以尝试
^\s*-
^
:字符串的开头\s*
:零个或多个空白字符-
:文字-
(你不需要在角色类之外逃避它)答案 1 :(得分:7)
您可以在开头使用0或更多空格可选匹配来使用此正则表达式:
^\s*-
答案 2 :(得分:0)
以上(使用\ s *)是这种情况下最简单的一种,但一般来说,你总是可以使用|语法:
re.match('^-|^\s+-', '- hello')
<_sre.SRE_Match object at 0x0000000054E72030>
re.match('^-|^\s+-', ' - hello')
<_sre.SRE_Match object at 0x0000000054E72030>
re.match('^-|^\s+-', ' + hello')
None
^-
是这样的 - 在开始时,`^ \ s + - '是一个或多个空格,并且|选择其中之一。