2014-05-19 3 views
2

루아에서는 어떻게 패턴 사이에 텍스트를 추출 할 수 있습니까? 예를 들어루아 string.gsub 패턴 사이의 텍스트

s="this is a test string. <!2014-05-03 23:12:08!> something more" 
  1. 내가 결과에만 날짜/시간을 필요 : 나는 일없이 모든 텍스트를 필요 2014-05-03 23:12:08
    print(string.gsub(s, "%<!.-%!>"))
  2. 작동하지 않습니다/시간 같은 : "this is a test string. something more"
+0

텍스트 안에 다른 '<' or '>'이 없다는 것을 확신 할 수 있다면; '% b' 매칭을 사용하십시오 :'s : gsub ('% b <>', '') – hjpotter92

답변

4

패턴 "<!.-!>"이 작동하지만 날짜/시간 부분을 가져 오려면 string.match을 사용해야합니다.

print(string.match(s, "<!(.-)!>")) 

! 또는 <을 패턴으로 이스케이프 할 필요가 없습니다. 물론 그들을 탈출하는 것은 오류가 아닙니다.

local result = string.gsub(s, "<!.-!>", "") 
print(result) 

또한 더 날짜/시간 형식의 유효성을 검사하는 패턴 .-을 확장 할 수 있습니다 :

result = string.gsub(s, "<!%d%d%d%d%-%d%d%-%d%d%s+%d%d:%d%d:%d%d!>", "") 

는, 날짜/시간 부분없이 문자열을 얻을 빈 문자열로 교체
+0

큰 답변 ... 고마워요! –