2016-11-24 5 views
0

übereinstimmen Ich versuche, den Benutzernamen der Benutzer auf YouNow aus einem bestimmten Feld übereinstimmen.Wie den Benutzernamen, der in speziellen Zeichen eingeschlossen ist

ich diesen HTML extrahiert, ich versuche, den Benutzernamen _You Won

"\n\t\t\t\t\t\t14\n\t\t\t\t\t\t_You Won\n\t\t\t\t\t" 

Dies ist Versuch, meine regex zu extrahieren:

(\d+)[\\n\\t]+([\W\w]+[^\\n\\t"$]) 

Das hat gut funktioniert, zuerst übereinstimmen ich eine Zahl, die ist das Level, dann passe ich den Benutzernamen an. Wenn der Benutzername jedoch mit t oder n endet, erhält er nicht den letzten Buchstaben. So Benutzer Spiel 1n erhalten würde abgeholzt Spiel 1

Weiß jemand, wie ich richtig die Benutzername holen kann?

es Spiele: https://regex101.com/r/j8rufa/2

+2

Beachten Sie, dass Ihre Leckereien Zeichenfolge als Zeichenkette regex101, so '\ n 'ist wörtlich, keine neue Zeile - also funktioniert eine Lösung, die mit dieser Zeichenfolge arbeitet, wahrscheinlich nicht in Ihrer echten Wortanwendung und umgekehrt. –

+0

Das ist kein Problem, ich habe dafür gesorgt, dass es auch umgekehrt funktioniert, ich brauche nur die richtige Regex für diese Saite, aber ich denke es gibt viel Raum für Verbesserungen, da ich ein Anfänger mit Regex bin. – Black

Antwort

1

Sie positive Vorschau statt [^\\n\\t"$] am Ende nutzen könnten.

Ihr Code wird sein:

(\d+)[\\nt]+([\W\w]+(?=\\n\\t)) 

Demo: https://regex101.com/r/j8rufa/4

Sie können auch Positives Lookbehind nutzen, um den Code zu verbessern, um sicherzustellen, dass der gesamte Name angepasst ist. Zum Beispiel, wenn der Name etwas wie t_You Won ist, wird es ohne Probleme angepasst werden:

(\d+)[\\nt]+(?<=\\t)([\W\w]+(?=\\n\\t)) 

Demo: https://regex101.com/r/j8rufa/6

+0

Vielen Dank, das funktioniert super :) ** YouWon ** – Black

+2

Sie können '[\\ n \\ t]' zu '[\\ tn]' verkürzen - und ich hoffe, dass Sie nie mit Benutzernamen konfrontiert werden t, z tnt. Es wird mehr Probleme geben, wenn das nach dem Benutzernamen folgt. –

+0

@EdwardBlack Mein Vergnügen :) – Ibrahim

Verwandte Themen