Ich versuche, FTP ListDirectoryDetails
Antwort zu analysieren, die von FileZilla FTP-Server kommt.Parsing Dateiname aus ListDirectoryDetails mit Regex
Das Hauptproblem ist, dass der FileZilla Server unterschiedliche Ausgaben in verschiedenen Sprachen (Kulturen) liefert.
Ich habe zwei folgende Ausgabe von FileZilla Server und beide müssen analysiert werden, was ich nicht erreichen konnte.
Format ist unten gezeigt:
drwxr-xr-x 1 ftp ftp 0 Sep 02 17:07 Can
-rw-r--r-- 1 ftp ftp 0 Jun 27 2016 Fan
drwxr-xr-x 1 ftp ftp 0 Sep 21 12:29 AA AA
-rw-r--r-- 1 ftp ftp 44 Sep 02 17:07 Debug.txt
Ich versuchte Regex zu verwenden, um dieses Problem zu lösen, aber es funktioniert nicht, wenn die Kompilierung.
Meine regex ist:
(?<permissions>[drwx\-]+((?<userandgroup>[A-Za-z]+ [A-Za-z]+) (?<size>\d+) (?<date>[A-Za-z]+ [\d:]+) (?<name> .*)
Ich brauche robusten regex. Vielleicht sollte nur Dateiname passenden Regex besser sein.
Wie kann ich nur Dateiname mit Regex übereinstimmen?
Ich denke, die zweite '(' sollte ')'. Siehe https://regex101.com/r/jK5dL8/1 (nicht '(? [drwx \ -] + (', aber '(? [drwx \ -] +)') –
Ich reparierte die Regex wie Sie erwähnt, aber es teilt Antwort auf Gruppen leider nicht auf. Leider Kompilierfehler gelöst –
Wenn Sie Daten zur Verfügung stellen, um als Text zu testen, kann ich - oder mehr SO Benutzer - Ihnen weiter helfen. –