| 

.NET C# Java Javascript Exception

1
Wie kann ich folgendes umsetzen?
text = '[[t:name|x]]'

und zwar ich bräuchte 't', 'name' und x entnommen um damit weiterarbeiten zu können

Mein bisheriger Versuch:

import re
text = re.sub(re.compile('[[([a-z]+):(.+?)]]'), 'TEXT', text)

Funktioniert, aber ich kann die Variablen nicht weiterverwenden...

Hätte hier vielleicht jemand die Zeit mir kurz zu helfen?

PS:
Ich habe gerad erst mit python angefangen, und das ist mein erste (Spass)-projekt
News:
20.03.2011
Gast
13 3
1
deine Frage hat wenig mit Python zu tun. dein RegEx-Muster ist falsch. zB die eckigen Klammer müsstest du "escapen". versuch mal vielleicht hier erstamal ein richtiges Muster zu bauen: http://www.pagecolumn.com/tool/regtest.htm
pinchbeck 21.03.2011
1 Antwort
2
>>> import re
>>> text = '[[t:name|x]]'
>>> m = re.search('(?<=[[)(.*?):(.*?)\|(.*?)(?=]])', text)
>>> m.group(0)
't:name|x'
>>> m.group(1)
't'
>>> m.group(2)
'name'
>>> m.group(3)
'x'
21.03.2011
Daniel Kuppitz 596 1 7
Ein bisschen Erklärung zu dem Code wäre schön. So hat er zwar die Lösung, aber es wäre hilfreicher, hättest du ihm noch erklärt, dass sich das erste (.*?) einen Textblock beliebig vieler Zeichen von Beginn der zwei eckigen Klammern bis zum : merkt und dieses in m.group(1) speichert.

Alles Weitere findest du in diesem Tutorial erläutert. Habe es hier schonmal empfohlen, lässt sich gut lesen und erklärt das Meiste: http://www.mycsharp.de/wbb2/attachment.php?attachmentid=7364&sid=4f498832999d01addca4927a423eb7a7
Dustin Klein 13.05.2011
Wie in seiner Frage unschwer zu erkennen ist, kennt er sich mit regulären Ausdrücken bereits aus. Die Kernfrage war, wie man die Matches in Python weiter verwenden kann, daher ist es IMO unnötig, hier Grundlagen über reguläre Ausdrücke zu erwähnen und.
Daniel Kuppitz 13.05.2011

Stelle deine Regex-Frage jetzt!