bytes.title() bytearray.title()
Метод title()
возвращает копию байтовой строки, в которой все слова начинаются с символа ASCII в верхнем регистре, а остальные символы с нижнего регистра.
b'abcdefghijklmnopqrstuvwxyz'
. b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
. Алгоритм использует простое независимое от языка определение слова как группы последовательных букв. Определение работает во многих контекстах, но оно означает, что апострофы в сокращениях и притяжениях образуют границы слов, что может не соответствовать желаемому результату:
>>> b"they're bill's friends from the UK".title() # b"They'Re Bill'S Friends From The Uk"
Обходной путь для апострофов может быть создан с использованием регулярных выражений:
>>> import re >>> def titlecase(s): ... return re.sub(rb"[A-Za-z]+('[A-Za-z]+)?", ... lambda mo: mo.group(0)[0:1].upper() + ... mo.group(0)[1:].lower(), ... s) ... >>> titlecase(b"they're bill's friends.") # b"They're Bill's Friends."
Обратите внимание, что метод bytearray.lower()
не изменяет байтовую строку bytearray
, он всегда создает новый объект, даже если никаких изменений не было сделано.
lower()
.upper()
.>>> b'Hello world'.title() b'Hello World' >>> b"they're bill's friends from the UK".title() # b"They'Re Bill'S Friends From The Uk" >>> b"ёжик".title() # File "<stdin>", line 1 # SyntaxError: bytes can only contain ASCII literal characters.