# Dateiname mit Regex parsen



## scooterJava (8. Feb 2011)

Ich möchte einen Dateinamen, dem ein beliebiger Pfad vorangestellt wird, diesen Pfad und die Dateiendung(en) abschneiden. Wie stelle ich das mit Regex an?

Beispiel:

\irgendein\langer.ganzlanger\pfad\dateiname.erweiterung.nocheineerweiterung => dateiname


----------



## xehpuk (8. Feb 2011)

Brauchst du dafür denn unbedingt einen Regex? Es würde einfach mit 
	
	
	
	





```
File.getName().split("\\.")[0]
```
 gehen (verdammt, ist ein Regex drin ). Oder eben mit 
	
	
	
	





```
File.getName().substring(0, file.getName().indexOf("."))
```
. Eventuell überprüfen, ob überhaupt ein Punkt vorhanden ist.


----------



## scooterJava (8. Feb 2011)

Ja, ein RegEx ist nötig. Mit dem substring hätte ich das selbst geschafft ...


----------



## timbeau (8. Feb 2011)

Möglichkeit wäre: 


```
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class dateiname {

	public static void main(String[] args) {
		Pattern pattern = Pattern.compile("\\\\([\\p{L}]*)");
		String input = "\\irgendein\\langer.ganzlanger\\pfad\\dateiname.erweiterung.nocheineerweiterung";
		Matcher matcher= pattern.matcher(input);
		String dateiname = null;
		while(matcher.find()){
			dateiname = matcher.group(1);
		}
		System.out.println(dateiname);
	}
}
```


----------

