2013-08-02 2 views
1

Я использую Python и пытаюсь удалить определенную фразу из строки, а фраза заканчивается точкой (.). Проблема в том, что я понимаю, что точка должна быть экранирована, поскольку она является подстановочным знаком, но она не работает. Любая идея, что я делаю неправильно?Соответствие регулярных выражений, которое содержит точку

Вот пример без точки:

import re 
line = 'xx1001.89.3' 
tmp = re.sub('xx1001','',line) 
print tmp 
.89.3 

Но, теперь с точкой:

tmp = re.sub('xx1001.','',line) 
print tmp 
9.3 

Таким образом, он использовал точку в качестве шаблона. Но если я пытаюсь избежать этого, шаблон не найден в строке:

tmp = re.sub('xx1001\.','',line) 
print tmp 
xx1001.89.3 

Во всех этих случаях, что я на самом деле стремятся является удаление xx1001., который должен оставить только 89.3

Я чувствую себя довольно уверенно, что Я делаю ошибку noob здесь, но просто не могу найти решение.

Большое спасибо!

+2

Ну, это прекрасно работает с побегом. –

+0

Хорошо работает ... вы уверены, что нет другого кода, который мы не видели, который изменяет 'tmp'? –

+5

Ну, это неловко. Клянусь, он не работал раньше! Как в пятницу пополудни .... – mishaF

ответ

0

Это работает для меня.

В любом случае это должно работать также для простой замены:

line.replace('xx1001.', '') 
Смежные вопросы