Kako vam se čini sljedeća sintaksa za filtriranje file-ova… i ako postoji već neka normirana, rado bi čuo koja.
Ideja je znači da se može fleksibilno i jednostavno filtrirati skup putanja prema file-ovima (pathova) po različitim kriterijima.
//REGPATH - nam omogućava da na lak način filtriramo putanje/pahtove
* -> dohvaća bilo koji file/folder
*/ -> dohvaća samo foldere
*.txt -> dohvaća bilo koji txt file na bilo kojoj razini
script.* -> dohvaća sve script fileove, bilo koje ekstenzije na bilo kojoj razini
*script.* -> dohvaća sve fileove koji završavaju sa script, bilo koje ekstenzije na bilo kojoj razini
script*.* -> dohvaća sve fileove koji počinju sa script, bilo koje ekstenzije na bilo kojoj razini
*script*.* -> dohvaća sve fileove koji sadrže script, bilo koje ekstenzije na bilo kojoj razini
*sc*pt*.* -> dohvaća sve fileove koji sadrže pt nakon sc, bilo koje ekstenzije na bilo kojoj razini
*/*.txt -> dohvaća sve .txt fileove na bilo kojoj dubini
*{0}/*.txt -> dohvaća sve .txt fileove na nultoj razini
! gornji zapis se može zapisati jednostavnije kao: "{0}/*.txt"
{1-3}/*.txt -> dohvaća sve .txt fileove na dubini 1 i 2.
{1+}/*.txt -> dohvaća sve .txt fileove na dubini 1 ili većoj.
folderA/* -> dohvaća sve što je se nalazi u folderu "folderA" koji mora biti na nultoj razini
folderA/*.txt -> dohvaća sve .txt file-ove u "folderA" koji mora biti na nultoj razini
*/folderA/* -> dohvaća sve što se nalazi na bilo kojoj dubini u folderu "folderA" koji također može biti na bilo kojoj razini
folderA/*.txt -> dohvaća sve .txt file-ove u "folderA"
folderA/*/*.txt -> dohvaća sve .txt file-ove koji se nalaze na bilo kojoj dubini unutar "folderA"
folderA/{1-4}/*.txt -> dohvaća sve .txt file-ove koji se nalaze unutar prve četiri razine unutar "folderA"
folderA/*/ -> dohvaća sve foldere koji se nalaze na bilo kojoj dubini unutar "folderA"
folderA/{1}/ -> dohvaća sve foldere koji se nalaze u folderu "folderA"
//Excluder:
-*.txt -> NE dohvaća bilo koji txt file na bilo kojoj razini. Analogno ovome, predznak minus se može dodati na bilo koji selektor da bi dobili Excluder
//Regex:
!.*\/file\d\.txt -> ako izraz počinje sa !, onda se cijeli izraz komparira po regex searchu. Tako će ovaj selektor obuhvatiti sve fileove na bilo kojoj dubini koji u nazivu imaju broj, tipa: "file1.txt"
//Regex and Exluder
-!file\\d/.+\\.txt
//Partial regex. - omogućava da mixamo nativna pravila regpatha sa regex pravilima. Možemo bilo koju path sekciju označiti sa početnim "!" i ta sekcija će se testirati po regex pravilima.
path/to/!folder[ABC]/* -> dohvaća sve što je na putanjama "path/to/folderA", "path/to/folderB" ili "path/to/folderC"
// !Kod partial regexa je zabranjeno koristiti karakter "/" unutar one sekcije koju označavamo sa "!" ...tako je npr syntax error ako se zada selektor: "path/to/folder[ABC\/]/*"
Bit će mi drago čuti bilo kakvu sugestiju za sintaksu…ako nešto fali ili bi trebalo bolje konceptirati
I jedan zanimljiv success. Napisao sam cijeli code za ovaj filter bez iti jednog refresha da išta testiram.
Nakon jedno dva-tri sata pisanja code-a…sve radilo po špagi. Par sitnica zaglavilo.
Inače nikada ne tipkam satima bez probanja…prije bi rekao da probam nešto svake minute po nekoliko puta xd.