2012-12-02 21 views
17

मैं किसी भी गैर-अल्फान्यूमेरिक वर्ण अनुक्रमों को डैश के साथ प्रतिस्थापित करना चाहता हूं। मैंने जो लिखा है उसका एक स्निपेट नीचे है। हालांकि यह काम नहीं करता है और मैं पूरी तरह से अनजान क्यों हूं। क्या कोई मुझे बता सकता है कि क्यों स्निपेट ऐसा व्यवहार नहीं करता है जैसा मैं उम्मीद करता हूं और इसे पूरा करने का सही तरीका क्या होगा?गोलांग रेगेक्स प्रतिस्थापन कुछ भी नहीं करता

package main 

import (
    "fmt" 
    "regexp" 
    "strings" 
) 

func main() { 
    reg, _ := regexp.Compile("/[^A-Za-z0-9]+/") 
    safe := reg.ReplaceAllString("a*-+fe5v9034,j*.AE6", "-") 
    safe = strings.ToLower(strings.Trim(safe, "-")) 
    fmt.Println(safe) // Output: a*-+fe5v9034,j*.ae6 
} 
+5

ध्यान दें कि आप का उपयोग करना चाहिए 'बजाय regexp.MustCompile' त्रुटि ingoring: http://golang.org/ पीकेजी/regexp/# MustCompile –

+5

यह एक उदाहरण था। मैं आमतौर पर लौटाई गई त्रुटियों के लिए बहुत प्यार दिखाता हूं – karka91

उत्तर

31

आगे की स्लैश आपकी स्ट्रिंग से मेल नहीं खाती हैं।

package main 

import (
     "fmt" 
     "log" 
     "regexp" 
     "strings" 
) 

func main() { 
     reg, err := regexp.Compile("[^A-Za-z0-9]+") 
     if err != nil { 
       log.Fatal(err) 
     } 

     safe := reg.ReplaceAllString("a*-+fe5v9034,j*.AE6", "-") 
     safe = strings.ToLower(strings.Trim(safe, "-")) 
     fmt.Println(safe) // Output: a*-+fe5v9034,j*.ae6 
} 

(इसके अलावा here)

आउटपुट

a-fe5v9034-j-ae6 
संबंधित मुद्दे