Как прописать в верхнем регистре первую букву строки, которая следует за разрывом строки? - PullRequest
1 голос
/ 23 марта 2020

У меня длинный текст, который содержит несколько абзацев. Он хранится в одной переменной.

Мне нужно прописывать первую букву каждое слово после переноса строки (или точки).

Какой самый простой способ сделать это?

Ответы [ 3 ]

1 голос
/ 23 марта 2020

Вот код, который заглавная буква каждого слова новой строки.

texts=''' hiii.
          hellooooooooo.
          my name is stack.
          dhdjljdkd.
      '''
res=[ i.strip().capitalize() for i in texts.split('\n')]
print('\n'.join(res))

#for i in texts.split('\n'):
#    res+=i.strip().capitalize()+'\n'
#print(res)   #--- WORKS

Вывод:

Hiii.
Hellooooooooo.
My name is stack.
Dhdjljdkd.
0 голосов
/ 23 марта 2020

Попробуйте вот так.

Может быть, это немного сложно.

Кажется, я восстановил верхнюю часть ( ) функция

import re
content="i have a long text that contains multiple paragraphs.\nit is stored in one variable.\ni need to uppercase the first letter every word that follows a line break (or a period).\nwhat is the most simple way to do that?"


def your_function_name(content):
    new_res=[]
    res=re.split(r'[.?\n]',content)
    while  ""  in res:
        res.remove("")
    for con in res:
        if 61<=ord(con[0])<=96:
            new_con=con
            new_res.append(new_con)
        elif 97<=ord(con[0])<=123:
            new_con=chr(ord(con[0])-32)+con[1:]
            new_res.append(new_con)
        else:
            new_con=con
            new_res.append(new_con)
    return new_res


print("Transformed\n-----------------")
new_res=your_function_name(content)
for i in new_res:
    print(i)

результаты следующие

Transformed
-----------------
I have a long text that contains multiple paragraphs
It is stored in one variable
I need to uppercase the first letter every word that follows a line break (or a period)
What is the most simple way to do that
0 голосов
/ 23 марта 2020

Полагаю, вы можете разделить ваш текст, используя в качестве символа-разделителя \ n . Таким образом, код должен выглядеть следующим образом:

output = []

for x in longString.split("\n"):
    try:
        x = x[0].upper() + x[1:]
    except:
        pass
    output.append(x)

outputString = "\n".join(output)

При таком подходе вы сможете вводить первую букву в верхнем регистре после переноса строки. Вы можете использовать аналогичный подход для периода.

Дайте мне знать, если это поможет! : D

...