Форум сайта python.su
Поясните почему результат
import re str1 = '1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890' str3 = re.sub('\w{4}', '=', str1) print(str3) #===========90
Офлайн
\w и есть любая буква и цифра
>>> s = '1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890' >>> re.sub('[a-zA-Z4]','=',s) '1======23=======5======67=====89===0123=567890' >>>
>>> s '1qazxsw23edcvfr45tgbnhy67ujmki89olp01234567890' >>> re.sub('\w{4}','=',s) '===========90' >>> re.sub('\w{1,4}','=',s) '============' >>>
Отредактировано vic57 (Апрель 10, 2018 17:18:30)
Офлайн
polin11нет {4} означает 4 раза ровно, не менее 4-х будет {4, }
{4} должна повторяться не менее 4 раз
polin11нет не должно, вы ищете 4подряд(не более и не менее) любые буквы-цыфры и заменяете одним знаком равно. у вас длинна str1 равна 46 символам вот вы и получаете 11 знаков равно и два последних символа “90” котороые не подпадают под щаблон
то есть строка str3 должна полностью состоять из =
[code python][/code]
Офлайн