Avatar billede bauerdata Nybegynder
11. maj 2008 - 21:31 Der er 6 kommentarer og
1 løsning

Parse lille inddata

hvordan parser jeg
"command  'arg one' \"arg two\" '
så jeg får en liste
('command', 'arg one', 'arg two')
Avatar billede bauerdata Nybegynder
11. maj 2008 - 21:34 #1
Sorry den sidste ' skal være en "

X = "command  'arg one' \"arg two\""
res = <dit svar>(X)
og
Res skulle være ('command', 'arg one', 'arg two')
Avatar billede erikjacobsen Ekspert
12. maj 2008 - 08:50 #2
Mener du sådan??

X = "command  'arg one' \"arg two\""
res= re.findall("[a-z]+|'[^']*'|\"[^\"]*\"",X)
print res
Avatar billede erikjacobsen Ekspert
12. maj 2008 - 08:50 #3
Selvfølgelig med en
  import re
hvis du ikke allerede har den.
Avatar billede bauerdata Nybegynder
12. maj 2008 - 10:50 #4
output bliver
['command', "'arg one'", '"arg two"']
det er ikke
['command', 'arg one', 'arg two']
det er ikke interessant hvilken " eller ' der er i inddata bare strengene bliver
adskilt rigtigt
Jeg har i mellemtiden selv fundet denneher

<%@LANGUAGE=Python%>
<%
# Licence GPL
# se http://support.microsoft.com/kb/276494 der er beskrevet hvordan du
# opsætter din asp server til at bruge python
import shlex
res = X = """command  "arg one" 'arg two'"""
Response.Write( shlex.split(X) )
%>


smid et svar erik og tak for buddet. :-)
Avatar billede bauerdata Nybegynder
12. maj 2008 - 10:52 #5
c/res = X =/X = /
Avatar billede erikjacobsen Ekspert
12. maj 2008 - 13:40 #6
Nå ja, ' og " skal også fjernes. Den der shlex tager nu nok også højde for et par andre ting.

Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Avatar billede bauerdata Nybegynder
12. maj 2008 - 14:38 #7
svar
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

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