अब, बेशक, मैं दोनों मामलों को संभालने के लिए अपनी नियमित अभिव्यक्ति लिख सकता हूं, जैसे कि regexp.Compile("[a-zA-Z]")
, लेकिन मेरी नियमित अभिव्यक्ति उपयोगकर्ता द्वारा दिए गए स्ट्रिंग से निर्मित है:
reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \\._-]", -1))
s.Name
नाम कहाँ है जो 'नॉर्थ बाय नॉर्थवेस्ट' जैसा कुछ हो सकता है। अब, मेरे लिए सबसे स्पष्ट समाधान प्रत्येक अक्षर के लिए चलना s.Name
और प्रत्येक अक्षर के लिए '[nN]' लिखना होगा:
for i := 0; i < len(s.Name); i++ {
if s.Name[i] == " " {
fmt.Fprintf(str, "%s[ \\._-]", str);
} else {
fmt.Fprintf(str, "%s[%s%s]", str, strings.ToLower(s.Name[i]), strings.ToUpper(s.Name[i]))
}
}
लेकिन मुझे लगता है कि यह एक गैर-सुरुचिपूर्ण समाधान है। गति वास्तव में एक चिंता का विषय नहीं है, लेकिन मुझे यह जानने की आवश्यकता है कि क्या कोई और तरीका है।