2016-10-06 2 views
3

루아와 키 = 값 쌍을 구문 분석하려고합니다. 예 문자열 보이는 같은 :루아와 키 값 쌍을 파싱하기

str="a=b b=c name=george jetson name2=paul davidson company=radioshack" 
for name, value in string.gfind(str, "([^&=]+)=([^&=]+)") do 
    print(name) 
    print(value) 
end 

결과 :

a 
b b 
c name 
george jetson name2 
paul davidson company 
radioshack 

불행하게도 그 다음 키를 잡아 내가 원하지 않는 값에 추가. 내가 뭘 놓치고 있니?

+1

%, 값 str : gmatch "% s * ([^ =] *) = ([^ =] *) % f [% s % z]"do' –

답변

4

키 앞에 오는 공백을 값과 공백으로 다르게 처리해야합니다.
아래 코드는이 작업을 수행하는 한 가지 방법입니다.

str="a=b b=c name=george jetson name2=paul davidson company=radioshack"  
str=" "..str.."\n" 
str=str:gsub("%s(%S-)=","\n%1=") 
for name, value in string.gmatch(str, "(%S-)=(.-)\n") do 
    print(name,"'"..value.."'") 
end 
관련 문제