Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用正则表达式将单词添加到下一行的方法是什么?_Python_Regex - Fatal编程技术网

在python中使用正则表达式将单词添加到下一行的方法是什么?

在python中使用正则表达式将单词添加到下一行的方法是什么?,python,regex,Python,Regex,我需要一个python正则表达式,在每一行的开头添加{\an8},该行包含两个单词“position:50.00%”和“line:10.00%”,格式如下,谢谢 file_content = re.sub(r'line:10.00%[^\n]*(\n*)([\w\W .,:%])', r'\1{\\an8}\2', file_content) 像这个例子: 00:05:31.957 --> 00:05:34.835 position:50.00%,start align:start si

我需要一个python正则表达式,在每一行的开头添加{\an8},该行包含两个单词“position:50.00%”和“line:10.00%”,格式如下,谢谢

file_content = re.sub(r'line:10.00%[^\n]*(\n*)([\w\W .,:%])', r'\1{\\an8}\2', file_content) 
像这个例子:

00:05:31.957 --> 00:05:34.835 position:50.00%,start align:start size:25.24% line:10.00% {\an8}Not yet. 00:05:31.957-->00:05:34.835位置:50.00%,开始对齐:开始大小:25.24%直线:10.00% {\an8}还没有。
您可以使用以下模式:

(.*\bposition\b:50\.00%.*\bline\b:10\.00%)\s*(.*)
替换为:

\1\n{\\an8}\2
正则表达式演示


在Python中:

import re

mystring = '''00:05:31.957 --> 00:05:34.835  position:50.00%,start  align:start size:25.24%  line:10.00%
Not yet.'''

print(re.sub(r'(.*\bposition\b:50\.00%.*\bline\b:10\.00%)\s*(.*)',r'\1\n{\\an8}\2',mystring))
印刷品:

00:05:31.957 --> 00:05:34.835  position:50.00%,start  align:start size:25.24%  line:10.00%
{\an8}Not yet.

不需要正则表达式

previous_line_matched = False

for line in input:
    if previous_line_matched:
        print '{\\an8}' + line
    else:
        print line

    if 'position:50.00%' in line and 'line:10.00%' in line:
        previous_line_matched = True
    else:
        previous_line_matched = False

您可以将最后四行替换为
前一行\u matched='position:50.00%'和
行中的'line:10.00%'。如果你真的想做的更好,你可以用
print('{\\an8}'*previous\u line\u matched+line)
替换上面的行。