Ответ 1
Вы можете попробовать
^\s*-
-
^
: начало строки -
\s*
: нулевые или более пробельные символы -
-
: литерал-
(вам не нужно избегать этого вне класса символов)
Я пытаюсь написать регулярное выражение, которое соответствует строкам, начинающимся с дефиса (-) ИЛИ, который начинается с пробелов или вкладок, а затем имеет дефис. Поэтому он должен соответствовать следующему:
- hello!
- hello!
Вот что у меня до сих пор: ^(\-)
. Но это не соответствует второму примеру выше, потому что для первого символа требуется дефис.
Вы можете попробовать
^\s*-
^
: начало строки\s*
: нулевые или более пробельные символы-
: литерал -
(вам не нужно избегать этого вне класса символов)Вы можете использовать это регулярное выражение, сделав 0 или более пробелов опциональным совпадением в начале:
^\s*-
выше (с использованием \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 + - 'имеет одно или несколько пробелов, а | выбирает один из них.