eller kanske ännu mer på prick vad jag behöver är följande.
Alla strängar som är på formen
[vad som helst]/[mapp]
ex.
http://www.myhost/myfolder
http://myhost/myfolder
Men inte
http://www.myhost/minfil.html
http://www.myhost/minfil.xhtml
11 svar · 603 visningar · startad av fredriksk
Jag lyckas aldrig få till de här eländiga reguljära uttrycken. Så nu vänder jag mig till er, kära kollegor.
hur säger man på (på reguljära uttryck språket):
Alla strängar som INTE innehåller delsträngen "index" (utan citattecken)?
eller kanske ännu mer på prick vad jag behöver är följande.
Alla strängar som är på formen
[vad som helst]/[mapp]
ex.
http://www.myhost/myfolder
http://myhost/myfolder
Men inte
http://www.myhost/minfil.html
http://www.myhost/minfil.xhtml
Flyttad från Programmering - Övrigt.
Du kan inte med regexp ta reda på huruvida minfil.html är en mapp. Det får du i stället göra med något bibliotek som programmeringsspråket tillhandahåller.
Red./ För att hitta alla strängar som inte innehåller index kan du använda
^((?!index).)*$
...fast att ta reda på om det är en mapp kan man ju tolka som att:
"Uttrycket efter / (eller mellan /) inte innehåller någon .(filändelse)" eller?
Alltså
[nånting]/[sträng som inte innehåller .filändelse]/
På både Windows och Linux är det ju möjligt att döpa mappar till foo.bar.
... och om vi bortser från den möjligheten och antar att vi endast accepterar "mappar" på formen [a-z, A-Z]] (mappar är ju lite missvisande kanske för det är ju inte mappar i vanlig betydelse (folder med filer i), vi pratar om webblänkar och då behöver ju inte mappen finnas fysiskt).
Alltså:
Hur fångar jag upp strängar på formen
en_ointressant_början_på_en_URL/enSträngMedTecken
en_ointressant_början_på_en_URL/enSträngMedTecken/enTillSträngMedTecken
men inte:
en_ointressant_början_på_en_URL/index.html
en_ointressant_början_på_en_URL/index.xhtml?id=32
^http://[^/]+/(?:[a-z]+/)*[a-z]+$
Alternativt måste du escape:a "/"
^http:\/\/[^\/]+\/(?:[a-z]+\/)*[a-z]+$
Slå även på flaggan för case insensitive.
jag tackar för detta men den verkar inte fungera.
Inte på länkar som ser ut som sisåhär:
Inlägget ovan har blivit redigerat :)
^http.*\/[[:alpha:]]*$
eller
^http.*\/[[:alnum:]]*$
om även 0-9 är tecken som kan förekomma bland dina "mappnamn"
Peter S skrev:
Inlägget ovan har blivit redigerat :)
Klockrent!
Tackar och bockar! Nu är allt frid och fröjd :-)