Уведомления

Группа в Telegram: @pythonsu

#1 Март 4, 2011 11:55:59

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражние. re.sub

Не получается сделать замену с использованием re.sub

есть две переменные

a='D:\update\Update_XP'
b='D:\update\Update_XP\20110101\WindowsXP-KB2079403-x86-RUS.exe'
p = re.sub(a,'#',b)
print(p)
>>>D:\update\Update_XP\20110101\WindowsXP-KB2079403-x86-RUS.exe
Ничего не изменилось. А Так работает:
p = re.sub('\d','#',b)
print(p)
>>>D:\update\Update_XP\########\WindowsXP-KB#######-x##-RUS.exe
получается, что нельзя шаблон как переменную в регулярку передавать? И как в таком случае быть?



Офлайн

#2 Март 4, 2011 12:16:11

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Регулярное выражние. re.sub

zloymih
И как в таком случае быть?
    
a= r'D:\\update\\Update_XP'
b=r'D:\update\Update_XP\0110101\WindowsXP-KB2079403-x86-RUS.exe'
p = re.sub(a,'#',b)
print(p)



Офлайн

#3 Март 4, 2011 12:44:47

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражние. re.sub

Хорошо, но проблема в том, что переменные a и b это результат каких-то функций, точнее

for root, subFolders, files in os.walk(a):
for b in files :
p = re.sub(a,'#',b)
print(p)
как мне добавить по ‘\’ и по ‘r’ к ним?



Офлайн

#4 Март 4, 2011 13:08:22

polymetr
От:
Зарегистрирован: 2010-03-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражние. re.sub

p = re.sub(re.escape(a),'#',b)



Офлайн

#5 Март 4, 2011 13:11:52

zloymih
От:
Зарегистрирован: 2011-03-01
Сообщения: 36
Репутация: +  0  -
Профиль   Отправить e-mail  

Регулярное выражние. re.sub

Спасибо! Это работает. В перле было проще :(



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version