webForumDet fria alternativet

Reguljära uttryck med sökvägar

PHP

2 svar · 417 visningar · startad av Swey

Medlem sedan apr. 20003 971 inlägg
Frågan#1

Kan man bygga upp ett reguljärt uttryck på sökvägar?

Om jag har denna sökväg
/mapp/mapp2/../mapp3/./

så vill jag att för varje /.. ska katalogen innan raderas och alla /. ska försvinna. Dessutom ska / på slutet försvinna och om den passerar roten så ska det försvinna totalt.

Ovan ska alltså bli
/mapp/mapp3

Och
/../mapp3
ska alltså bli
/mapp3

Någon som har något förslag på hur man kan lösa detta med reguljära uttryck?

------------------
/mvh Swey

Programmera PHP

[Redigerat av Swey den 04 jul 2000]

Medlem sedan dec. 19992 555 inlägg
#2

Låter som om reguljära uttryck inte riktigt är det rätta verktyget här. Visst kan man radera mönster typ "xxx/../", men probmelet kommer ju vid mönster typ "/xxx/yyy/../../../zzz/". Jag kan då inte komma på hur man skall tala om för ett reguljärt uttryck hur det skall agera i sådana fall.

Låter mer som ett jobb för en rekursiv funktion (en funktion som anropar sig själv). Regexp är i.o.f.s. guds gåva till mänskligheten, men de är inte svaret till allting. :)

------------------
Robban < robban@lipogram.com >

Medlem sedan apr. 20003 971 inlägg
#3

Har aldrig haft något behov av reguljära uttryck eftersom det inte ens löser en sån här enkel sak :h

Fixade det med en loop.

------------------
/mvh Swey

Programmera PHP

249 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)