2014-04-18 13 views
5

Mam szablon nazw plików, takich jak:Regex pasujące nazwy plików

$subject-id$-subject-info.xml 
$sampleId$-$subjectId$-sample-info.txt 
$subjectId$-$sampleId$-sample-info.txt 
$subjectId$-$sampleId$-image-$type$.png 
$sampleId$-$subjectId$-image-$type$.jpg 
image-$sampleId$-$subjectId$-$type$.jpg 

kolejność type, sample-id, subject-id nie stale ustawiony.

Potrzebuję wybrać pliki pasujące do tego szablonu.

na przykład:

dla pierwszego szablonu maching wyrażenie:

"123A-subject-info.xml" ($subject-id$ is string) 

na sekundę:

"2014-04-17-17-42-57-O1CD-sample-info.txt" ($sample-id$ is date time type) 

za ostatni:

"image-2014-04-17-17-42-57-01CD-mini.jpg" ($type$ is another string) 

Jak mogę to zrobić z regex? Próbuję parsować te łańcuchy za pomocą metody split, ale muszę przepisać tę metodę ciągle, jeśli szablon został zmieniony.

+0

więc pierwszy szablon jest co? Można podać kilka przykładów, które można oczekiwać, aby dopasować się swoim pierwszym szablonie – aelor

+0

„$ przedmiot id $ -subject-info.xml ". w przykładzie subject-id = 0000 –

+0

czy zawsze będzie 4 cyfry? – aelor

Odpowiedz

1

Na przykład, jeśli plik jest w php to byłoby /^\S[a-zA-Z]+.(php)$/ Ale można zastąpić php z wybranym rozszerzeniem.

spróbuj http://regex101.com/ by sprawdzić wyrażenie regularne

Powiązane problemy