2014-12-01 88 views
0

简单的问题...我需要把这个正则表达式...的Lua:正则表达式模式

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

成一个Lua模式。

我这样做是为了用一个字符串替换一堆[[X]]行,其中X是来自-∞或+∞的任何数字......所以这是唯一的限制。我需要将此端口转换为Lua模式,以便我可以在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 

\d它匹配任何数字将表示为在lua%d

+3

我可能会建议使用'%[“(%d +)”%]''来避免需要转义嵌入双引号的混淆。 – 2014-12-02 00:14:52

+0

谢谢,这工作完美。至于Etan的建议,我看到了推理,但我更喜欢“更好,逃离对我来说不是一个大问题。:)谢谢你们。 – B1313 2014-12-02 00:22:57