2011-12-05 15 views
7

मुझे लगता है कि \d[0-9] के रूप में पहचाना नहीं गया है। नीचे मेरा कंसोल आउटपुट देखें:क्या यह संभव है कि लुआ का libpcre कार्यान्वयन ' d' का समर्थन नहीं करता है?

> require "rex_pcre" 
> return rex_pcre.new("[0-9]+"):exec("1234") 
1  4  table: 0x2141ce0 
> return rex_pcre.new("\d+"):exec("1234") 
nil 

क्या मुझे कुछ याद आ रहा है या क्या?

अद्यतन

केविन बेलार्ड के रूप में सही ढंग से जवाब दे दिया है, स्ट्रिंग काम करता है से बचने! जैसे

> return rex_pcre.new("\\d+"):exec("1234") 
1  4  table: 0x21427f0 
> return rex_pcre.new([[\d+]]):exec("1234") 
1  4  table: 0x2142ee0 

धन्यवाद केविन

+0

मैंने अभी किया है, हालांकि, इस तथ्य के लिए कुछ समय लगेगा, इसलिए प्रश्न पोस्ट होने के बाद 10 या 15 मिनट बीतने तक उत्तर स्वीकार न करें। –

उत्तर

9

मैं कल्पना क्योंकि \d लुआ से एक तार से बच के रूप में व्याख्या की जा रही है इतना ही। इसके बजाय "\\d+" या [[\d+]] का उपयोग करने का प्रयास करें। वाक्यविन्यास explained here है।

संबंधित मुद्दे