Hallo,
ich habe aktuell ein Python-Problem mit regulären Ausdrücken. Aufgabe: Ein String soll folgendermassen geändert werden:
aus "das ist ##ein## Test" soll "das ist <i>ein</i> Test" werden.
ein
re.sub("##(.*$)##", "<u>$1</u>", text)
liefert nicht das richtige Ergebnis. Tipps?
On Thu, Mar 14, 2002 at 09:26:28AM +0100, Bernd Ledig - Heitech Service GmbH wrote:
Aufgabe: Ein String soll folgendermassen geändert werden:
aus "das ist ##ein## Test" soll "das ist <i>ein</i> Test" werden.
ein
re.sub("##(.*$)##", "<u>$1</u>", text)
liefert nicht das richtige Ergebnis. Tipps?
s = "das ist ##ein## Test" p = re.compile('##') x = p.sub('<i>',s) print x
oder mit backreference
s = "das ist ##ein## Test" print s p = re.compile('##(.*)##') x = p.sub(r'<i>\1<i>',s) print x
Das war jetzt mein erstes Stück Phyton-Kode. Komplizierte Syntax finde ich.
Reinhard
-- Bernd Ledig bl@heitech.net Heitech Service GmbH http://www.heitech.net --
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
On Thu, Mar 14, 2002 at 10:54:31AM +0100, Reinhard Foerster wrote:
naja, is noch sehr früh. Hab den / nicht gesehen. Dann gehts natürlich nicht ohne Backreference. Also
s ="das ist ##ein## Test" p = re.compile('##(.*)##') x = p.sub(r'<i>\1</i>',s) print x
Reinhard
On Thu, Mar 14, 2002 at 10:54:31AM +0100, Reinhard Foerster wrote:
On Thu, Mar 14, 2002 at 09:26:28AM +0100, Bernd Ledig - Heitech Service GmbH wrote:
Aufgabe: Ein String soll folgendermassen geändert werden:
aus "das ist ##ein## Test" soll "das ist <i>ein</i> Test" werden.
ein
re.sub("##(.*$)##", "<u>$1</u>", text)
liefert nicht das richtige Ergebnis. Tipps?
s = "das ist ##ein## Test" p = re.compile('##') x = p.sub('<i>',s) print x
oder mit backreference
s = "das ist ##ein## Test" print s p = re.compile('##(.*)##') x = p.sub(r'<i>\1<i>',s) print x
Das war jetzt mein erstes Stück Phyton-Kode. Komplizierte Syntax finde ich.
Man muss reguläre Ausdrücke nicht vorher kompilieren, es geht auch so:
import re s='das ist ##ein## Test' s=re.sub(r'##(.*)##', r'<u>\1</u>', s) print s
das "r" vor den Zeichenketten im Ausdruck sind optional. Man brauch dann nicht zwei Backslashs schreiben.
thomas
lug-dd@mailman.schlittermann.de