2013-06-30 5 views
8

루아에는 단지 string.find이지만, 때로는 string.rfind이 필요합니다.루아에서 string.rfind를 구현하는 방법

fullpath = "c:/abc/def/test.lua" 
pos = string.rfind(fullpath,'/') 
dir = string.sub(fullpath,pos) 

방법 등 string.rfind를 작성하는 예를 들어, 같은 디렉토리 및 파일 경로를 구문 분석?

답변

5

당신은 string.match 사용할 수 있습니다

: 그것은 그것 /

UPDATE 일치하기 전에 할 수있는만큼 일치 수 있도록 여기에 패턴

fullpath = "c:/abc/def/test.lua" 
dir = string.match(fullpath, ".*/") 
file = string.match(fullpath, ".*/(.*)") 

.*는, 욕심

@ Egor Skriptunoff가 지적했듯이, 이것은 더 좋습니다 :

dir, file = fullpath:match'(.*/)(.*)' 
+1

디렉토리, 파일 = fullpath에 : 찾기를 사용하여 또 다른 가능성은 문자열 반대하는 것이다 '(. * /) (*.)'경기를 –

2

Yu & 에고의 대답이 작동합니다.

pos = #s - s:reverse():find("/") + 1 
+0

이 같은 결과 제공 :'볼때 = s의 : 일치 '. *()/'' –