Заменить или ввести пробел после последовательности букв некоторых известных или неизвестных, а затем написать на новой строке содержимого - PullRequest
0 голосов
/ 08 апреля 2019

Проблема в том, что теперь у меня есть строка, в которой несколько слов склеены:

fooledDog и мне нужно ввести в заблуждение D **** строка текста с добавленным "" whateveredJ и мне нужно whatevered J ******* текст строки продолжается с добавленным ""

string = string.replace("edD","ed D")
string = string.replace("edJ","ed J")

но мне нужно вместо "D" и "J" иметь любой возможный символ, чтобы избежать здесь жестких значений кодирования, чтобы код работал с любой буквой или цифрой в этой позиции.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Это довольно простая проблема, которую можно решить с помощью регулярных выражений (это не всегда так, даже если регулярные выражения - лучший инструмент для работы).Попробуйте это:

import re

text = "fooledDog whateveredJob"
fixed_text = re.sub(r'ed([A-Z])', r'ed \1', text)
print(fixed_text) # prints "fooled Dog whatevered Job"

Шаблон ищет буквы 'ed' в нижнем регистре, за которыми следует любая заглавная буква (которая будет захвачена).Замена - 'ed' и пробел, за которым следует заглавная буква группы захвата.

0 голосов
/ 08 апреля 2019

Я не до конца понимаю ваш вопрос, но, похоже, у вас есть несколько слов в верблюжьих словах, которые вы хотите отделить. Если это так, попробуйте это:

import re

name = 'CamelCaseTest123'
splitted = re.sub('(?!^)([A-Z][a-z]+)', r' \1', name).split()

Выход:

['Camel', 'Case', 'Test123']
...