Lets sagen, dass ich die Datenausgabe wie die folgenden haben:Ziehen Sie eine positionierte gruppierte und sich wiederholende Zeichenfolge mit Regex?
0; root.; 0; MLG.; 247; root.; 249; MLG.; 2390; toasty.;
... someNumber; username.;
Ich versuche, den Benutzernamen zu ziehen, während die Zahl zu ignorieren und vorherigen, um es aus Semikolon, wenn die Zahlen nicht 0, und dies für eine unbekannte Anzahl von Malen zu tun. In Bezug auf diese Daten sollte die Ausgabe erscheinen günstig wie:
root. MLG. toasty.
Die Syntax Perl Format werden muss. Die Anwendung, die dies verwendet, nimmt keine Ausnahmen. Während ich vollständige Kontrolle darüber habe, wie diese Daten präsentiert werden (wie ich kann die Semikola neben den Zahlen entfernen und die eindeutige Nummer an den Benutzernamen mit einem Punkt und trennen Sie mit einem Semikolon) Ich möchte die Methode zu kennen mach das unabhängig.
I Einige der vielen aktuellen regexs versucht haben, ist wie folgt ...
(Die (?<field>
ist die Regex nach dem Ende >
ein Feldname durch die Anwendung für den Fall angegeben werden, um anzugeben und gezeigt jemand fragen)
- zieht alle Daten bis zum letzten Semikolon, ausgehend von denen die erste Zahl ist nicht gezeigt 0.
"(?<users_online>[1-9].*;)"
- Zieht alle Daten nach der ersten Instanz einer Zahl ungleich Null und ein Semikolon erscheint.
"[1-9];(?<users_online>.*?)"
- zieht alle Daten nach der ersten Instanz einer Nicht-Null-Zahl und ein Strichpunkt und gibt keine alphanumerischen Werte bis zum nächsten „Wort“ boundry up.
"[1-9];((?<users_online> \w+\b))"
Jedwedes Hilfe ist willkommen.
Ist es nicht einfacher, Benutzernamen nach einer Null zu extrahieren und ihnen beizutreten? –
@CasimiretHippolyte Wie ich das interpretiere, ist es nicht erlaubt. Die Benutzer, die einer Null folgen, sind Benutzer, die nicht angezeigt werden können. Ich habe nur mit denen zu tun, die eine Nicht-Null-Nummer – Jouster500
folgen. Es ist nicht sehr unterschiedlich. –