2016-04-15 3 views
1

Я пытаюсь выяснить, как удалить этот [###:###] с начала строки [###:###]other random text с использованием замены регулярных выражений.Регулярные выражения: удаление этого параметра из строки

Я пробовал:

line = '[123:456]othertext' 
print re.sub(r'^[\d*:\d*],'',line) 

Но это оставляет скобки позади: '[]othertext'

Вопрос здесь заключается в том, что скобки традиционно указывают на захват регулярное выражение группы. Поэтому я тогда пытался игнорировать их с ключом побега \\:

line = '[123:456]othertext' 
print re.sub(r'^\\[\d*:\d*\\],'',line) 

И это не показали никаких изменений в строку: '[123:456]othertext'

Как правильно форматировать регулярное выражение?

+3

Одиночные обратные слэши должны использоваться в сырых строковых литералов. –

+0

Что не так с 'line.rpartition (']') [- 1]'? – styvane

+0

@ user3100115 Это будет работать для примера, который я предоставил, но многие из строк, которые я разделяю, используют скобки как в начале, так и в конце. В этом случае точный ответ удался. –

ответ

2

Одиночные обратные косые черты должны использоваться в необработанных строковых литералах, чтобы избежать специальных метасимволов регулярного выражения и сокращенных классов символов.

Использование

import re 
line = '[123:456]othertext' 
print re.sub(r'^\[\d*:\d*\]','',line) 
#    ^ ^
# => othertext 

См Python demo

Смежные вопросы