2014-09-23 4 views
1

왜 일치하지 않습니까? 나는 당신이 단지 문자열이 패턴과 일치하는 경우, 참조 대신 string.match를 사용하려면 3 개 개의 숫자일치하는 앵커가있는 루아의 패턴

s = "dd123" 
    for w in string.gmatch(s, "^%a%a%d%d%d$") do 
     print(w) 
     matched = true 
    end 
+0

예상되는 출력은 무엇입니까? –

+0

단일 라이너 작동. 'print (string.match ("dd123", "^ % a % d % d % d % d $"))' –

+0

재미있는 this는'regex' SO 필터링 태그에 나타납니다. – sln

답변

3

다음에 정확한 패턴이 편지를 일치합니다.

s = "dd123" 
print(string.match(s, "^%a%a%d%d%d$")) -- dd123 

string.gmatch 문자열에서 모든 일치를 찾기 위해, 그리고 ^$ 제대로 작동하지 않습니다.

+0

for 루프에서'string.match'가 실패한 이유는 무엇입니까? –

+1

'string.gmatch'는 문자열 시작 부분에 고정을 허용하지 않습니다 (이것은 [매뉴얼]에 있습니다 (http://www.lua.org/manual/5.1/manual.html#pdf-string.gmatch)). 왜'$'가 허용되는지 모르겠습니다. –