Найти - Пользователи
Полная версия: Любимые регулярные выражения
Начало » Python для новичков » Любимые регулярные выражения
1
polin11
Поясните почему результат
 import re
str1 = '1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890'
str3 = re.sub('\w{4}', '=', str1)
print(str3) #===========90
\w - любая буква и цифра {4} должна повторяться не менее 4 раз, то есть строка str3 должна полностью состоять из =
vic57
\w и есть любая буква и цифра
 >>> s = '1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890'
>>> re.sub('[a-zA-Z4]','=',s)
'1======23=======5======67=====89===0123=567890'
>>> 
если в смысле делить по 4 символа то последняя подстрока не 4 символа, поэтому не заменяется
 >>> s
'1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890'
>>> re.sub('\w{4}','=',s)
'===========90'
>>> re.sub('\w{1,4}','=',s)
'============'
>>> 
PEHDOM
polin11
{4} должна повторяться не менее 4 раз
нет {4} означает 4 раза ровно, не менее 4-х будет {4, }
учите матчасть и будет вам щастье:
http://www.ilnurgi1.ru/docs/python/modules/re.html

polin11
то есть строка str3 должна полностью состоять из =
нет не должно, вы ищете 4подряд(не более и не менее) любые буквы-цыфры и заменяете одним знаком равно. у вас длинна str1 равна 46 символам вот вы и получаете 11 знаков равно и два последних символа “90” котороые не подпадают под щаблон

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