文本文件上的Python正则表达式

文本文件上的Python正则表达式,python,xml,regex,Python,Xml,Regex,嗨,伙计们,我有关于regex的问题,我需要一些帮助。我的代码如下所示: # -*- coding: utf-8 -*- import re WEEKDAYS = ["nedjelja", "utorak", "četvrtak", "ponedjeljak", "subota", "srijeda", "petak"]: with open('natio_geo_channel.xml', 'r') as input_file, \ open('nat.xml', 'w')

嗨,伙计们,我有关于regex的问题,我需要一些帮助。我的代码如下所示:

# -*- coding: utf-8 -*-
import re

WEEKDAYS = ["nedjelja", "utorak", "četvrtak", "ponedjeljak", "subota", "srijeda", "petak"]:

with open('natio_geo_channel.xml', 'r') as input_file, \
        open('nat.xml', 'w') as output_file:
    for line in input_file:
        for x in WEEKDAYS
            line = line.replace("<para>" + x, "<date>")
        line = re.sub(r"<para>\d{0}", "<start>", line)
        line = re.sub(r"<start>\d{2}\.\d{2}\s/\s/", "</start>", line)
        output_file.write(line)
#-*-编码:utf-8-*-
进口稀土
工作日=[“nedjelja”、“utorak”、“četvrtak”、“ponedjeljak”、“subota”、“srijeda”、“petak”]:
以open('natio_geo_channel.xml','r')作为输入文件\
打开('nat.xml','w')作为输出文件:
对于输入_文件中的行:
在工作日为x
行=行。替换(“+x”)
line=re.sub(r“\d{0}”,第行)
line=re.sub(r“\d{2}\。\d{2}\s/\s/”,“”,第行)
输出_文件。写入(行)
我的文件看起来像:

<para>nedjelja1. rujna 2013.</para>
    <para>06.00        na hrvatskom Zona gradnje: Izgradnja zelenog Pekinga</para>
    <para>Kineske nevolje sa zagađenjem problem su s globalnim posljedicama. Pratite ekipu zelenih inženjera koji grade energetski učinkoviti Peking.</para>
nedjelja1。鲁伊纳,2013年。
06.00 na hrvatskom gradnje区:Izgradnja zelenog Pekinga
卡因斯克·内沃尔耶·萨扎加·恩杰姆问题是一个全球性问题。帕拉蒂·埃基普·泽莱尼(Pratite ekipu Zelenish inženjera koji grade energetski učinkoviti Beijing)。
我所做的,我先用替换,然后去掉nedjelja,没关系。 但我如何做到这一点:

<start>06:00<start><title>Zona gradnje</title><sub>Izgradnja zelenog Pekinga</sub>
06:00Zona gradnjeIzgradnja zelenog Pekinga
从该
06.00 na hrvatskom Zona gradnje:Izgradnja zelenog Pekinga

你能给我一些建议或想法吗

请尝试以下操作:

def main():    
    line = r'<para>06.00        na hrvatskom Zona gradnje: Izgradnja zelenog Pekinga</para>'        
    if re.search(r'^(<para>)\d{2}.\d{2}', line):
        line_time = re.findall(r'\d{2}.\d{2}',line)[0]       
        line_title = line[line.find(re.findall(r'[A-Z]',line)[0]):line.find(':')]        
        line_sub = line[line.find(':')+1:line.find(r'</')].strip()

        print '<start>'+line_time+'</start><title>'+line_title+'</title><sub>'+line_sub+'</sub>'   
def main():
直线=r'06.00 na hrvatskom Zona gradnje:Izgradnja zelenog Pekinga'
如果重新搜索(r'^()\d{2}.\d{2}',行):
line_time=re.findall(r'\d{2}.\d{2}',line)[0]
line_title=line[line.find(re.findall(r'[A-Z]',line)[0]):line.find(':')]
line_sub=line[line.find(':')+1:line.find(r'要转换此值:

<para>06.00        na hrvatskom Zona gradnje: Izgradnja zelenog Pekinga</para>
06.00 na hrvatskom Zona gradnje:Izgradnja zelenog Pekinga
为此:

<start>06:00<start><title>Zona gradnje</title><sub>Izgradnja zelenog Pekinga</sub>
06:00Zona gradnjeIzgradnja zelenog Pekinga
这样做:

str = re.sub(".*?>(\S+)(?:\s+\S+){2}\s+(.*?):\s*(.*)<.*", 
    "<start>\1<start><title>\2</title><sub>\3</sub>", str)

str=re.sub(“.*?”(\S+)(:\S+\S+{2}\S+(.*?):\S*(*)那么,代码片段和1段XML与您的问题有什么关系呢?使用XML解析器,例如内置元素树,并操作DOM。不要使用正则表达式来解析XML。如果您不知道我在做什么,请不要评论。它不是XML,而是.doc(word)doc,我不知道有谁能把.doc转换成csv,或者xls.Thx,我会试试,主要问题是这是第一个.doc(word),我将其转换为xml,因为它对正则表达式很快。我知道对于ETtree,它现在对我没有帮助,只有xls-t会有帮助。我会尝试使用它。Thx很多!我想说Thx帮助了我!上面的代码有效!欢迎你,我的朋友…:)嘿,Vivek,这怎么能和文件一起工作,比如打开文件,读我从上面发来的行。你能帮我吗?当然可以。打开(r'','r')作为文件:使用它总是喜欢使用RE。+1 from me@Bohemian,谢谢。
<start>06:00<start><title>Zona gradnje</title><sub>Izgradnja zelenog Pekinga</sub>
str = re.sub(".*?>(\S+)(?:\s+\S+){2}\s+(.*?):\s*(.*)<.*", 
    "<start>\1<start><title>\2</title><sub>\3</sub>", str)