Как добавить слово в строку ниже, используя регулярное выражение в Python? - PullRequest
0 голосов
/ 16 сентября 2018

Мне нужно регулярное выражение в python, чтобы добавить {\ an8} в начале каждой строки ниже строк, содержащих 'line: 10.00%', спасибо.

Ответы [ 3 ]

0 голосов
/ 16 сентября 2018

Эта функция перебирает строки, проверяя состояние текущей строки, т. Е. Если она содержит проверяемую фразу, установите флаг, если это так, и обновите следующую строку:

s = '''00:01:54.208 --> 00:01:57.166 position:50.00%,middle align:middle size:80.00% line:10.00% 

Gonna let you down'''

flag, lines = 0, s.split('\n')

for x, line in enumerate(lines):
    if flag and line:
        lines[x] = '{\\an8}' + line
        flag = 0
    if 'line:10.00%' in line:
        flag = 1

print('\n'.join(lines))

# 00:01:54.208 --> 00:01:57.166 position:50.00%,middle align:middle size:80.00% line:10.00%
# 
# {\an8}Gonna let you down
0 голосов
/ 16 сентября 2018

попробуйте это и дайте мне знать, если это сработало

import re
re.sub('line[^\n]*(\n*)([\w\W])', r'\1an8\2', your_string)
0 голосов
/ 16 сентября 2018

С учетом входных данных в строке-

s =  "00:01:54.208 --> 00:01:57.166 position:50.00%,middle align:middle size:80.00% line:10.00%"

find = 'line:10.00%'
s1 = r"{\an8}"
if find in s:
    s = s1+" "+s
    print(s)

Out: {\an8} 00:01:54.208 --> 00:01:57.166 position:50.00%,middle align:middle size:80.00% line:10.00%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...