2013-05-08 4 views
1

Привет, ребята, проблемы с конкретной проблемой. Я использую регулярное выражение python, чтобы изменить источник разметки для вывода html-формата.Python Regex Mark-Up

источник разметки:

[ 
# sometextsometextsometextsometextsometextsometext. # 

# sometextsometextsometextsometextsometextsometextsometextsometext 
sometextsometextsometextsometextsometextsometext. # 
] 


[ 
hello i am a normal paragraph. 
] 

желаемый результат:

<ol> 
<li> sometextsometextsometextsometextsometextsometext. </li> 

<li> sometextsometextsometextsometextsometextsometextsometextsometext 
sometextsometextsometextsometextsometextsometext. </li> 
</ol> 

<p> 
hello i am a normal paragraph. 
</p> 
+1

Как код зирр osed знать, следует ли помещать текст в список или абзац? –

+0

Наличие «#» в квадратных скобках .. я думаю, не совсем уверен. – user2360404

+3

Итак, что именно представляет собой ваша проблема и какие решения вы пробовали? – jwodder

ответ

1
import re 
with open('mk.txt') as f: 
    with open('newmk.txt','w+') as g: 
     text = f.read() 
     SquareGroups = re.findall(r'\[(?:.|\n)+?\]',text) 
     for group in SquareGroups: 
      if '#' in group: #must be ol 
       group = group.replace('[','<ol>') 
       group = group.replace(']','</ol>') 
       group = re.sub('#(?= ?\w)','<li>',group) 
       group = re.sub('(?<=[\w ])#','</li>',group) 
      else: 
       group = group.replace('[','<p>') 
       group = group.replace(']','</p>') 
      g.write(group) 
      g.write('\n') #optional, just makes the output look 'nicer' 

Превращает ваш вклад в mk.txt в следующий текст в newmk.txt:

<ol> 
<li> sometextsometextsometextsometextsometextsometext. </li> 

<li> sometextsometextsometextsometextsometextsometextsometextsometext 
sometextsometextsometextsometextsometextsometext. </li> 
</ol> 
<p> 
hello i am a normal paragraph. 
</p>