2 Stimmen

Ausdrücken aller Zeichenfolgen zwischen $ und * +2 Zeichen in Python drucken

Ich möchte alle Teilzeichenfolgen in einem String ausdrucken, die das folgende Muster von +2 Zeichen haben: Zum Beispiel die Teilzeichenfolgen

$iwantthis*12
$and this*11

aus dem String erhalten;

$iwantthis*1231  $and this*1121

Im Moment benutze ich

 print re.search('(.*)$(.*) *',string)

und ich erhalte $iwantthis*1231, aber wie kann ich die Anzahl der Zeichen nach dem letzten Mustersymbol * begrenzen?

Grüße

2voto

NPE Punkte 462670
In [13]: s = '$iwantthis*1231  $and this*1121'

In [14]: re.findall(r'[$].*?[*].{2}', s)
Out[14]: ['$iwantthis*12', '$and this*11']

Hier:

  • [$] entspricht $;
  • .*?[*] entspricht der kürzesten Sequenz von Zeichen gefolgt von *;
  • .{2} entspricht zwei beliebigen Zeichen.

2voto

thefourtheye Punkte 219812
import re
data = "$iwantthis*1231  $and this*1121"
print re.findall(r'(\$.*?\d{2})', data)

Ausgabe

['$iwantthis*12', '$and this*11']

Visualisierung des regulären Ausdrucks

Debuggex Demo

Erklärung bei RegEx101

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X