Найти - Пользователи
Полная версия: dопрос про применение регулярных выражений. re
Начало » Python для новичков » dопрос про применение регулярных выражений. re
1
beliy_shum
что делает эта строка:

txt=re.compile(r'<+>').sub(' ', строковая переменная содержащая кусок кода html)

Регулярное выражение (regular expression) — это шаблон, который определяет мно-
жество строк, ему удовлетворяющих. Функции, определенные в модуле re позволяют
определить, удовлетворяет ли определенная строка данному регулярному выражению
(или, что то же самое, регулярное выражение строке).
Объединение регулярных выражений также является регулярным выражением. Ес-
ли строка a удовлетворяет регулярному выражению A и строка b удовлетворяет регуляр-
ному выражению B, то a + b удовлетворяет A + B. Таким образом, сложные регуляр-
ные выражения могут быть сконструированы из примитивных выражений, описанных
ниже.
Регулярные выражения могут содержать как обычные символы, так и специальные
управляющие последовательности. Большинство обычных символов, таких как ‘A’, ‘a’
или ‘0’, являются простейшими регулярными выражениями, удовлетворяющими самим
себе. Вы можете объединять обычные символы, так выражению ’list’ удовлетворяет
строка ’list’.



compile(pattern )
Компилирует регулярное выражение в строке pattern и возвращает представляю-
щий его объект. Поведением регулярного выражения можно управлять с помощью
аргумента flags. Значение аргумента flags может быть составлено из описан-
ных ниже констант с помощью оператора |.



sub(pattern, repl, string )
Возвращает строку, полученную заменой непересекающихся фрагментов строки
string, удовлетворяющих регулярному выражению pattern, на repl. Если не
найдено ни одного такого фрагмента, строка возвращается неизменной. repl мо-
жет быть строкой или функцией. Функция должна воспринимать один аргумент —
объект, представляющий результат сопоставления, и возвращать строку для заме-
ны. Например:
>>> def dashrepl(matchobj):
…. if matchobj.group(0) == ’-’: return ’ ’
…. else: return ’-’
>>> re.sub(’-{1,2}’, dashrepl, ’pro—-gram-files’)
’pro–gram files’
Если задан и не равен 0 аргумент count, он определяет максимальное число
производимых замен. По умолчанию число замен не ограничено.
Замена удовлетворяющего регулярному выражению фрагмента нулевой длины про-
изводится только в том случае, если он не является смежным с предыдущим таким
фрагментом. Таким образом, ‘sub(’x*’, ’-’, ’abc’)’ возвращает ’-a-b-c-’.
Если repl является строкой, то обрабатываются содержащиеся в ней специальные
последовательности, представляющие символы или ссылки на группы. Например,
r’\n’ заменяется символом новой строки, r’\6’ (или r’\g<6>’)—фрагментом,
удовлетворяющим шестой группе, и r’\g<id>’ — фрагментом, удовлетворяющим
группе с именем id.


я не понимаю, что такое регулярные выражения, это можно просто объяснить?
почтеннеше благодарю
beliy_shum
words=re.compile('+').split(txt)

а как ещё и русские слова выделить?
words=re.compile('+').split(txt) так не работает….
.Serj.
beliy_shum
words=re.compile('+').split(txt)

а как ещё и русские слова выделить?
words=re.compile('+').split(txt) так не работает….
Так должно сработать:
words=re.compile(u'+').split(txt)
slivlen
beliy_shum
я не понимаю, что такое регулярные выражения, это можно просто объяснить?
А Фридла пробовал читать? У него в книге объяснено все и разжевано.
beliy_shum
.Serj.
спасибо большое. сработало
slivlen не пробовал, я до этого момента вообще ни разу с регулярными выражениями не встречался
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB