2014-12-01 2 views
0

간단한 문제에 대한 정규식 ... 난 루아 패턴으로 ...루아 : 패턴

"\[\"([0-9]+)\"\]" 

를이 정규식 패턴을 설정해야합니다.

나는 X가 -∞ 또는 + ∞의 숫자 인 문자열에서 [X] 묶음을 "[X]"줄로 바꾸려면이 작업을 수행하고 있습니다 ... 유일한 제한 사항입니다. 이것을 String.gsub에서 사용할 수 있도록 루아 패턴으로 이식해야합니다.

Find: "\[\"([0-9]+)\"\]" 

또한 어떻게 번호 주변의 ""을 제거합니까? 그 패턴이 필요해. 누군가 나를 도울 수 있다면, 나는 그것을 감사 할 것입니다.

답변

2

다음과 같이 시도해 볼 수 있습니다. 어떤 숫자를 일치

> f = "foo [\"12\"] bar" 
> x = string.gsub(f, "%[\"(%d+)\"%]", "[%1]") 
> print(f) 
foo ["12"] bar 
> print(x) 
foo [12] bar 

\dlua에서 %d로 표현된다.

+3

나는 대신에 임베디드 큰 따옴표를 이스케이프해야하는 혼동을 피하기 위해'% [ "(% d +)"%] "를 제안했을 것입니다. –

+0

감사합니다. 완벽하게 작동했습니다. Etan의 제안에 관해서는, 나는 추론을 보았지만, "나는 더 좋아하고, 도망 치는 것은 나에게 큰 문제가되지 않는다. :) 고마워. – B1313