Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модуль re.Как оформить функцию? очистить строку при помощи шаблона 
V
    Опции темы
Unlocker
Дата 6.2.2008, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: -1
Всего: 2



хочу написать функцию, которая бы очищала строку от мусора для дальнейшего лексемного анализа:
Код

import re
def fltr(string, num = 2):
    if (num == 0):
        filt = r"""(".*")"""
    elif (num == 1):
        filt = r"""(//.)"""
    else:
        filt = r"""([^()[]])"""
    pattern = re.compile(filt, re.DOTALL | re.VERBOSE | re.IGNORECASE)
    pattern.sub('', string)
    return string

проблема в том, что в режиме интерпритатора выполнение очистки происходит нормально, а при попытке записать данный код в функцию код не работает. В чем дело - сам не могу разобраться.
проверка дебаггером показала, что шаблон компилируется нормально. Может дело в том, что строка передается в качестве формального параметра по ссылке?Как  исправить данное недоразумение?
Заранее благодарен всем откликнувшимся. smile 
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Daevaorn
Дата 6.2.2008, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 9
Всего: 70



Цитата

sub(    pattern, repl, string[, count])
   Return the string obtained by replacing the leftmost non-overlapping occurrences of pattern in string by the replacement repl. If the pattern isn't found, string is returned unchanged. repl can be a string or a function; if it is a string, any backslash escapes in it are processed. That is, "\n" is converted to a single newline character, "\r" is converted to a linefeed, and so forth. Unknown escapes such as "\j" are left alone. Backreferences, such as "\6", are replaced with the substring matched by group 6 in the pattern. 

PM MAIL WWW   Вверх
Unlocker
Дата 6.2.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: -1
Всего: 2



Daevaorn, а по-русски коммент приложить не забыл?Приложи пояснения.
Справочник у меня и на русском есть.Мне интересно почему в этом контексте код неработоспособен?
На свой вопрос я ответа так и не получил.
Тема остается открытой.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Void
Дата 6.2.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 10
Всего: 173



Unlocker, строки в Питоне неизменяемые. Любые операции со строками возвращают новую строку, а не модифицируют старую. Ещё вопросы есть?


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Unlocker
Дата 6.2.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: -1
Всего: 2



Void, вопросов больше не имею. Спасибо за помощь. 
Пошел писать дальше...
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0694 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.