So schauts aus, wenns "fertig" ist... es mag verbesserungswürdig sein funktioniert aber:
Code: Alles auswählen
# -*- coding: utf-8 -*-
import re
template = '''ich bin eine =tolle1 Über===schrift= dasda dada
ich bin auch eine == tolle2 Über===schrift == dasd a
na und ich bin auch eine === tolle3 Über===schrift === dasda
und ich bin ==== keine Überschrift mehr da vier mal = ====
und noch ne === dreier ueberschrift ===
======== test ? ===========
'''
# defines Regex-Syntax
HEADLINE = re.compile(r'(={1,3}\s*.*={1,3})')
def HEADLINE_FUNCTION(data, regex):
#print regex.findall(data) # testeweise
def getHeaderList(data, regex):
HeaderList = []
for string in regex.findall(data):
if string.startswith(r'====') and string.endswith(r'===='):
# hiermit fische ich alles heraus, was laenger als drei mal = ist
continue
elif string.startswith(r'===') and string.endswith(r'==='):
HeaderList.append((string, 3))
elif string.startswith(r'==') and string.endswith(r'=='):
HeaderList.append((string, 2))
elif string.startswith(r'=') and string.endswith(r'='):
HeaderList.append((string, 1))
else:
# don't say never :D
continue
return HeaderList
def replace_headers(data, HeaderList):
count = 0
for header, level in HeaderList:
tmp_data = data.replace(header, '<h%d>%s</h%d>' %(level, header[level:len(header)-(level)], level))
print tmp_data
data = tmp_data
count +=1
return data
HeaderList = getHeaderList(data, regex)
print 'HeaderList: \n%s\n' % HeaderList
print 'Ausgangstemplate: \n%s' % template
data = replace_headers(data, HeaderList)
print 'Fertige Header: \n\n%s' % data
if __name__ == '__main__':
HEADLINE_FUNCTION(template, HEADLINE)
edit: kleinen Fehler weggemacht... er hat zu viel abgeschnitten
Ausgabe wäre dann folgende:
Code: Alles auswählen
ente@Proggi-PC:~/Desktop/daucms$ python testing.py
HeaderList:
[('=tolle1 \xc3\x9cber===schrift=', 1), ('== tolle2 \xc3\x9cber===schrift ==', 2), ('=== tolle3 \xc3\x9cber===schrift ===', 3), ('=== dreier ueberschrift ===', 3)]
Ausgangstemplate:
ich bin eine =tolle1 Über===schrift= dasda dada
ich bin auch eine == tolle2 Über===schrift == dasd a
na und ich bin auch eine === tolle3 Über===schrift === dasda
und ich bin ==== keine Überschrift mehr da vier mal = ====
und noch ne === dreier ueberschrift ===
======== test ? ===========
Fertige Header:
ich bin eine <h1>tolle1 Über===schrift</h1> dasda dada
ich bin auch eine <h2> tolle2 Über===schrift </h2> dasd a
na und ich bin auch eine <h3> tolle3 Über===schrift </h3> dasda
und ich bin ==== keine Überschrift mehr da vier mal = ====
und noch ne <h3> dreier ueberschrift </h3>
======== test ? ===========
Ich denke, das das reicht um zu erklären, wofür ich das benötige
Ist halt erstmal nur rumgespiele...
MfG EnTeQuAk