Avatar billede qumle Nybegynder
22. juli 2004 - 13:32 Der er 8 kommentarer og
1 løsning

Regular Expression help

jeg skal validere en sti til et directory på en server

stien skal se ud som følger:

\\vturepos\xmlfiles\noget.dk\xml\schemas\2000\10\20

udsnit af code:

string regularEx = "\\\\vturepos\\xmlfiles\\\\w+([\\.\\-]\\w+)*\\.[a-z,A-Z]{2,3}\\xml\\schemas\\\\d\\d\\d\\d\\\\d\\d\\\\d\\d";

...

ifRegex.IsMatch(dirPath,regularEx))
{
    gør noget
}

jeg får følgende fejl når jeg kører programmet

MESSAGE=parsing "\\vturepos\xmlfiles\\w+([\.\-]\w+)*\.[a-z,A-Z]{2,3}\xml\schemas\\d\d\d\d\\d\d\\d\d" - Insufficient hexadecimal digits.
Parameter name: \\vturepos\xmlfiles\\w+([\.\-]\w+)*\.[a-z,A-Z]{2,3}\xml\schemas\\d\d\d\d\\d\d\\d\d


nogen der ved hvad Insufficient hexadecimal digits betyder i denne sammenhæng

i øvrigt er jeg llidt i tvivl om mine mang backslash gbliver escaped korrekt.

hvis man skriver \\ skulle det så ikke svare til en \ i den streng som bliver valideret?
Avatar billede erikjacobsen Ekspert
22. juli 2004 - 13:52 #1
\x forventer hexadecimale tal bagefter. Der skal nok lidt flere \-ere på.
Avatar billede qumle Nybegynder
22. juli 2004 - 14:14 #2
med "x" mener du hvilket som helst tegn?
Avatar billede erikjacobsen Ekspert
22. juli 2004 - 14:16 #3
nej, jeg mener "x"
Avatar billede qumle Nybegynder
22. juli 2004 - 14:23 #4
ahh \xmlfiles, dvs \\ i stedet?
Avatar billede qumle Nybegynder
22. juli 2004 - 15:50 #5
er jeg helt galt på den...

betyder \\ i et regular expression \, i den streng som tjekkes eller skal man bruge et specialtegn eller en kode?
Avatar billede erikjacobsen Ekspert
22. juli 2004 - 15:51 #6
\\ i en C streng betyder \
\\ i et regulært udtryk betyder \
Avatar billede qumle Nybegynder
23. juli 2004 - 08:46 #7
OK det færdige udtryk blev:

"\\x5C\\x5Cvturepos\\x5Cxmlfiles\\x5C\\w+([\\.\\-]\\w+)*\\.[a-z,A-Z]{2,3}\\x5Cxml\\x5Cschemas\\x5C\\d\\d\\d\\d\\x5C\\d\\d\\x5C\\d\\d"

problemet opstod fordi jeg har konverteret udtrykket fra et som skulle validere urls, altså med / i stedet for \.
Da jeg så udskiftede / med \ glemte jeg at der stadig skulle stå f.eks. \\w.

det gjorde det dog noget nemmere at overskue da jeg brugte \x5C i stedet for \\\\

erik-> smider du lige et svar. Du fik mig i hvert fald skubbet et stort skridt i den rigtige retning
Avatar billede erikjacobsen Ekspert
23. juli 2004 - 09:06 #8
Tjah - jeg ville foretrække \\\\, men bare det virker ;)
Nej tak, jeg samler slet ikke på point.
Avatar billede qumle Nybegynder
23. juli 2004 - 11:00 #9
tja det er vel en smags sag.

Så vil jeg selv tage mine point. Men du skal have tak for hjælpen alligevel
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester