Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Regular Expression Dateieendung ermitteln mit mehreren Punkten

Frage Entwicklung

Mitglied: StefanLausL

StefanLausL (Level 1) - Jetzt verbinden

27.02.2014, aktualisiert 10:24 Uhr, 954 Aufrufe, 6 Kommentare

Guten Morgen,


ich "füttere" ein externes Tool mit einer Regular Expression: (?<fileNameWithoutExtension>[^.]+)(?<ext>.*)
Aus dem Ergebnis [ext] -> Extension kann ich dann entscheiden was mit der Datei passieren soll z.B.: Test.zip --> Datei muss entpackt werden.

Das funktioniert alles ganz gut, sofern die Datei denn auch mit .zip endet.

Leider erhalte ich neuerdings Dateien mit Namen Test.txt.01012014.zip
Die RegExp funktioniert hier nicht mehr.

Leider bin ich kein "Regular Expression Guru" und weiss nicht wo ich hier ansetzen muss.
Normalerweise würde ich die Datei von hinten lesen (Revert) und dann bis zum ersten Punkt die Dateiendung auslesen -> piz. und dann wieder mit Revert auf .zip ändern.

Aber wie das in Regular Expression funktioniert habe ich keine Ahnung.
Irgendwie ist Regular Expression für mich ein Buch mit sieben Siegeln.

Hat irgendjemand eine Lösung wie ich das Ganze in einer Zeile mit Regular Expression lösen kann ?
Das Tool gibt es leider nicht her, irgendwas in rekusiven Schleifen o.ä. auszulesen.


Für Eure Hilfe wäre ich sehr dankbar.


Mitglied: colinardo
LÖSUNG 27.02.2014, aktualisiert um 10:24 Uhr
Hallo StefanLausL,
Dein Regex dazu kann so aussehen
(?<fileNameWithoutExtension>.*)\.(?<ext>[^\.]+$)
ausgeschrieben bedeutet das Regex folgendes:
Match the regular expression below and capture its match into backreference with name “fileNameWithoutExtension” «(?<fileNameWithoutExtension>.*)» 
   Match any single character that is not a line break character «.*» 
      Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*» 
Match the character “.” literally «\.» 
Match the regular expression below and capture its match into backreference with name “ext” «(?<ext>[^\.]+$)» 
   Match any character that is NOT a . character «[^\.]+» 
      Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+» 
   Assert position at the end of the string (or before the line break at the end of the string, if any) «$
Regular Expressions Tutorial

Grüße Uwe
Bitte warten ..
Mitglied: StefanLausL
27.02.2014 um 10:24 Uhr
Super !
Vielen Dank für die wirklich schnelle Antwort.

Grüße Stefan
Bitte warten ..
Mitglied: StefanLausL
28.02.2014 um 10:12 Uhr
Hallo,

leider sind gestern Dateien ohne Dateiendung eingelesen worden.
Das führte zum Fehler, weil die Regexp in diesem Fall versagt.

Wie muss ich die RegExp anpassen, damit [fileNameWithoutExtension] matched ?


Gruß Stefan
Bitte warten ..
Mitglied: StefanLausL
28.02.2014 um 10:26 Uhr
Ich werd es einfach mal so probieren

(?<fileNameWithoutExtension>.*)(?<ext>\.[^\.]+$)|(?<fileNameWithoutExtension>[^.]+)

Aber vielleicht hat ja noch jemand eine bessere/sichere Lösung.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 28.02.2014, aktualisiert um 11:55 Uhr
(?<fileNameWithoutExtension>.+?)(?<ext>\.[^.]*$|$)
Grüße Uwe
Bitte warten ..
Mitglied: StefanLausL
28.02.2014 um 11:55 Uhr
DANKESCHÖÖÖÖÖÖÖÖNNNNNNNNN
Bitte warten ..
Ähnliche Inhalte
Entwicklung
gelöst Benötige Hilfe bei Regular Expression (6)

Frage von Thomas91 zum Thema Entwicklung ...

Datenbanken
Reguläre Ausdrücke in MSSQL dynamisch zusammensetzen (2)

Frage von Androxin zum Thema Datenbanken ...

Java
Frage zu Print When Expression im Jaspersoft Studio (2)

Frage von helmuthelmut2000 zum Thema Java ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(9)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

(1)

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (27)

Information von SeaStorm zum Thema Utilities ...

Windows Systemdateien
Windows bootet nicht mehr Fehlermeldung 0xc0000098 (19)

Frage von franzgoerlich zum Thema Windows Systemdateien ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...

LAN, WAN, Wireless
gelöst 802.1X-Authentifizierung (13)

Frage von Alex29 zum Thema LAN, WAN, Wireless ...