2017-08-07 4 views
0

Ich möchte Dateierweiterung, d. H. "Ext" aus dem obigen mit scala regex, mit der Übereinstimmung & Fall extrahieren.scala regex: extrahieren Dateierweiterung

Ich benutze über Regex und es wird in nicht übereinstimmen Fall.

Alle Hinweise auf Regex-Tutorials sind hilfreich.

+0

Was hast du probiert? Wo steckst du fest? Veröffentlichen Sie einen Code, der nicht funktioniert, und wir können darauf hinweisen, wo der Code abläuft. – jwvh

+0

@jwvh Ich habe den Code aktualisiert, bitte überprüfen Sie – codehunter

Antwort

2

Ein paar kleinere Anpassungen.

val reg_ex = """.*\.(\w+)""".r 

file_name match { 
    case reg_ex(ext) =>s"$ext is extension" 
    case _ => println("file_reg_ex none"); "" 
} 

Nur eine Erfassungsgruppe benötigt. Ignoriere alles vor dem letzten Punkt, \. (es ist also ein Punkt und kein "any char") und fange den Rest ein.

Der Standardwert case _ sollte mehr als println tun. Es sollte den gleichen Typ wie die Übereinstimmung zurückgeben.

+0

das hat funktioniert !! Vielen Dank, können Sie mich auf alle Regex-Tutorials zeigen, wahrscheinlich spezifisch für Scala wird viel besser sein, das wird großartig. – codehunter

+1

1 - Ich bin froh, dass ich helfen konnte. 2 - Der angemessene Ausdruck der Dankbarkeit, hier auf SO, ist ein Up-Vote und/oder markieren Sie die Antwort als "akzeptiert". 3 - Ich bin sicher, es gibt viele schöne Regex-Tutorials online. Ich habe in letzter Zeit nichts mehr benutzt, daher habe ich keine Empfehlungen. – jwvh

+1

+1, um das 'case _' in der Antwort zu beheben. Scala Regex ist Java Regex, aber es gibt Beispiele unter http://www.scala-lang.org/api/current/scala/util/matching/Regex.html Um Parsing von Dateipfaden zu machen, wollen Sie wirklich eine lib, nicht regexes. Es gibt mehrere Bibliotheken. –