Ich versuche, eine beliebige Anzahl Zeichenfolge wie 3.1415926535897932384626433832795028841971
direkt nach jeder 0
oder Gruppe 0
zu teilen. Allerdings möchte ich die 0 nach jeder Gruppe behalten.Split-String mit Lookahead/Lookbehind mit leeren String
Zum Beispiel der Zeichenfolge 10203040506070809011
sollte in
['10', '20', '30', '40', '50', '60', '70', '80', '90', '11']
aufgeteilt werden und die Zeichenfolge 3.1415926535897932384626433832795028841971
sollte in
['3.14159265358979323846264338327950', '28841971']
aufgeteilt wird Ich habe versucht, die Zeichenfolge mit einem positiven Lookbehind zu spalten auseinander und einem leeren string:
import re
p = '(?<=0+)'
re.search(p, '102030405')
><_sre.SRE_Match object; span=(2, 2), match=''>
'102030405'.split(p)
>['102030405']
aber dies tut die Zeichenfolge überhaupt nicht aufteilt, obwohl das Muster übereinstimmt.
Ich versuchte auch nur die Zeichenfolge auf der Grundlage der 0
Zerlegung auseinander und fügen Sie eine 0
nach den ersten paar Strings, aber es scheint gewunden und ineffizient.
Gibt es eine Möglichkeit, eine Zeichenfolge basierend auf einem Lookahead oder Lookbehind auf einer leeren Zeichenfolge zu teilen? Ich frage nach dem allgemeinen Fall, nicht nur nach Zahlen. Zum Beispiel, wenn ich 3:18am5:19pm10:28am
in die separaten Zeiten teilen wollte, ohne die am
oder pm
zu verlieren, und ein Array ['3:18am', '5:19pm', '10:28am']
bekommen, wie würde ich darüber gehen, dies zu tun?
Welche Version von Python verwenden Sie? Ich erhalte einen Fehler, wenn ich versuche 're.search (p, '102030405')' ' –
Verwenden von Python 3.6.1 – victor
Wie möchten Sie' '10020'' spalten? "['100', '20']" oder "['10', '020']" – randomir