Лучший способ разделить строку на два разных разделителя, использовать заглавные буквы в двух словах, содержащих только один из них, и добавить оба разделителя обратно? - PullRequest
0 голосов
/ 08 октября 2018

Я пишу скрипт Python, который должен иметь возможность разбивать строку на два разделителя: '_' и '.', Использовать заглавные буквы для слов, разделенных разделителями (заключать в них разделители), и затем, наконец, иметьразделители вернулись туда, где они были.

Так что-то вроде: this_is.an_Example string for.You

должно превратиться в: This_Is.An_Example string For.You

Прямо сейчас у меня есть это: return '_'.join(x.capitalize() for x in re.split('_|\.', str)) + '\n', который на самом деле не делает то, что я хочук.

Есть ли чистые способы сделать это?Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 08 октября 2018

Вы можете использовать

import re
s = "this_is.an_Example string for.You"
print(re.sub( r'(?<![^_.])[^\W_]+|[^\W_]+(?=[._])', lambda x: x.group().capitalize(), s))
# => This_Is.An_Example string For.You

См. Демо Python и демо regex .

Сведения о шаблоне

  • (?<![^_.])[^\W_]+ - 1 или более цифр или букв ([^\W_]+), которым непосредственно предшествует _, или ., или начало строки
  • | - или
  • [^\W_]+(?=[._]) - 1 или более цифр или букв ([^\W_]+), за которыми сразу следует _, или ., или конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...