2013-09-10 4 views
-1

Я перебор страниц, и я хотел бы изменить строки, содержащиеPython: Замена строк

<span class="font16"></span> 

Как я могу исправить этот код?

text = re.sub(r'<span class="font(.*)"></span><span', r'<span class="font\1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span', text) 
+2

Что не так с тем, что у вас есть? – Blorgbeard

+0

С самого начала я могу указать, что '(. *)' Жадный и дойдет до конца, оставив после этого '>

+1

Пожалуйста, просмотрите наиболее проголосованный ответ на этот вопрос: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Hyperboreus

ответ

1

Узор .* будет соответствовать что-нибудь до конца строки, так что матч будет выглядеть следующим образом:

16"></span>.... 

, который не то, что вы хотите. Используйте шаблон, который останавливается на первом " (так как они не имеют права внутри значений атрибутов, которые цитируются с "):

r'<span class="font([^"]+)"></span><span' 
+0

Итак, У вас есть это: text = re.sub (r ' {}; где я хотел бы вставить знаки между font16 "> и. – MarkF6

+0

Мне интересно, почему пул пуст. Вероятно, вы должны искать шрифт' ' без закрытие '' или следующий пролет. –

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