2013-06-30 27 views
8

ルアにはstring.findしかありませんが、いつかはstring.rfindが必要です。このようstring.rfindを書くためにどのようにLuaでstring.rfindを実装する方法

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

:たとえば、のようなディレクトリとファイルのパスを解析するには?

答えて

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

DIR、ファイル=フルパス:検索を使用して別の可能性は、文字列逆転するだろう試合を '(。* /)(。*)' –

2

Yu &エゴールの答えが働いています。

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

これは、同じ結果与える: 'のPOS =秒:マッチ」を。 *()/ '' –

関連する問題