Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 10, 2010 10:14:48

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

помогите с re

всем здравствуйте.
помогите написать регулярку.
нужно найти строчку: Inserts a command to the server queue at the beginning and forces execution.


import re
text ='''
<p><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
</p><p><br />
</p>
<div class="editsection" style="float:right;margin-left:5px;">[<a href="/w/Template:Method/edit?section=4" title="Template:Method">edit</a>]</div><a name="Description"></a><h3>Description</h3>
<p>Inserts a command to the server queue at the beginning and forces execution.
</p>
<div class="editsection" style="float:right;margin-left:5px;">[<a href="/w/Template:Method/edit?section=5" title="Template:Method">edit</a>]</div><a name="Arguments"></a><h3>Arguments</h3>
<p><br />
</p>
'''

print re.findall(r"Description</h3>(.*?)</p>", text)



Офлайн

#2 Июнь 10, 2010 10:22:49

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с re

re.search('Inserts a command to the server queue at the beginning and forces execution.', text)



Офлайн

#3 Июнь 10, 2010 11:21:07

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

помогите с re

А регулярка то тут зачем? Просто ищите строчку.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Июнь 10, 2010 11:42:18

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с re

Мне кажется что sp3 нужно найти эту строку, не зная ее. Т е вычистить из файла теги.



Офлайн

#5 Июнь 10, 2010 13:07:25

Nik
От:
Зарегистрирован: 2010-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с re

print re.findall(r"Description</h3>\s*<p[^>]*>(.*?)</p>", text, re.S | re.I)



Офлайн

#6 Июнь 10, 2010 13:12:52

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

помогите с re

print re.findall(r"Description</h3>\n<p>(.*?)</p>", text, re.DOTALL)
или так можно попробовать (зависит от вида переноса строки)
print re.findall(r"Description</h3>\s+<p>(.*?)</p>", text, re.DOTALL)

Офлайн

#7 Июнь 10, 2010 13:15:33

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

помогите с re

Nik
print re.findall(r"Description</h3>\s*<p[^>]*>(.*?)</p>", text, re.S | re.I)
а зачем "<p*>“ , там же ”<p>" - 3 символа вместе

Офлайн

#8 Июнь 10, 2010 13:21:11

Nik
От:
Зарегистрирован: 2010-01-10
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите с re

а зачем "<p*>“ , там же ”<p>" - 3 символа вместе
Открывающие теги могут иметь (или не иметь) параметры… Вы же пытаетесь решить конкретную ситуацию, а не предвидеть возможные варианты…



Офлайн

#9 Июнь 10, 2010 13:48:20

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

помогите с re

Nik,o7412369815963 спасибо, очень помогли :)



Офлайн

#10 Июнь 10, 2010 15:52:54

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

помогите с re

Nik
Вы же пытаетесь решить конкретную ситуацию
так и есть, т.к. это статический шаблон, изменяется только текст.

в регепс нужно ещё добавить флаг re.DOTALL (он же re.S), для того что-б получить многострочный текст,
без него регепс “(.*?)” вернет текст только до переноса строки, т.е. только первую строку

Отредактировано (Июнь 10, 2010 15:54:44)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version