Я хочу сопоставить некоторые цифры, которым предшествует нецифровая или в начале строки.Python regex: Как я могу совместить начало строки в выборе?
Поскольку карет не имеет особого значения внутри скобок, я не могу использовать его, поэтому я проверил the reference и обнаружил альтернативную форму \A
.
Однако, когда я пытаюсь использовать его я получаю сообщение об ошибке:
>>> s = '123'
>>> re.findall('[\D\A]\d+', s)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 177, in findall
return _compile(pattern, flags).findall(string)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 245, in _compile
raise error, v # invalid expression
sre_constants.error: internal: unsupported set operator
Что я делаю неправильно?
Вы не можете просто использовать каретку за пределами скобок, например? '^ [A-Za-z] +?' Также не совсем верно о том, что каретки не имеют особого значения внутри скобок. Если каретка является первым символом внутри скобок, он отрицает набор символов внутри (говорит, что соответствует всем, кроме '[^ ...]' –
", некоторые цифры, которым предшествует нецифровая или в начале строки" - doesn ? т, что значит, все цифры Просто используйте '\ D +' ... – Izkata
@lzkata: реальный случай использования является более сложным, это просто упрощение –