Hi
Ich habe einen String:
asdfZUDFyxcv
asdf und yxcv sind immer gleich, ZUDF kann sich immer ändern in Zeichen (ohne Sonderzeichen und Ziffern)
Wie kann ich denn rausfinden, was dazwischen steht bzw. wo sich der String befindet?
Also .. asdf kann auch länger oder kürzer sein, aber da steht immer asdf und dahinter steht immer yxcv.
Ich finde nur search und match .. und ein MatchObject, aber irgendwie passt das nicht richtig auf meine Problemstellung :-/
Danke schon mal
Bye, Transmitter
String zwischen 2 Strings per Regular Expressions rausfinden
Wenn 'asdf' und 'yxcf' vorher bekannt sind, dann brauchst Du gar keinen regulären Ausdruck:
Ansonsten beschreib das Problem mal etwas genauer.
Code: Alles auswählen
In [157]: pre = 'asdf'
In [158]: post = 'yxcv'
In [159]: data = 'asdfZUDFyxcv'
In [160]: data[len(pre):-len(post)]
Out[160]: 'ZUDF'
-
- User
- Beiträge: 24
- Registriert: Mittwoch 24. November 2004, 02:23
Also ich habe z.B.: 3 Dateien:
und ZUDF kann sich ändern
asdf davor und yxcv dahinter aber nicht
davor und dahinter kann sich auch alles ändern.
Was ZUDF ist will ich wissen, bzw. will aus dem String einen Substring haben mit:
String = .. ganzer Dateiinhalt
SubString = ZUDF ..
Wie meinst du das mit deinem In und Out?
Würde das so funktionieren?
Code: Alles auswählen
vyseraweavsdasdfZUDFyxcvvyserav
Code: Alles auswählen
avrrtsdhi mzmasdfZUDFyxcvvvselrvvyiov
Code: Alles auswählen
vfbnfnrnasdfZUDFyxcvrnubhnt
asdf davor und yxcv dahinter aber nicht
davor und dahinter kann sich auch alles ändern.
Was ZUDF ist will ich wissen, bzw. will aus dem String einen Substring haben mit:
String = .. ganzer Dateiinhalt
SubString = ZUDF ..
Wie meinst du das mit deinem In und Out?
Würde das so funktionieren?
Hoi,
wie wäre es mit
Gruß,
Christian
wie wäre es mit
Code: Alles auswählen
import re
tests = ['vyseraweavsdasdfZUDFyxcvvyserav','avrrtsdhi mzmasdfZUDFyxcvvvselrvvyiov',\
'vfbnfnrnasdfZUDFyxcvrnubhnt']
m = re.compile("asdf[\w]*yxcv")
for test in tests:
print test
#finde alle (hier nicht notwendig)
iterator = re.finditer(m,test)
for match in iterator:
t = match.span()
print t
print test[t[0]+4:t[1]-4]
Christian
-
- User
- Beiträge: 24
- Registriert: Mittwoch 24. November 2004, 02:23
Damit wäre es super
Danke dir .. mit regular expressions habe ich meistens so ein paar Anlaufschwierigkeiten :-/
Danke dir .. mit regular expressions habe ich meistens so ein paar Anlaufschwierigkeiten :-/