এখন অবশ্যই আমি উভয় ক্ষেত্রে পরিচালনা করার জন্য আমার নিয়মিত প্রকাশটি লিখতে পারি, যেমন regexp.Compile("[a-zA-Z]")
, তবে আমার নিয়মিত প্রকাশটি ব্যবহারকারী কর্তৃক প্রদত্ত স্ট্রিং থেকে তৈরি করা হয়েছে:
reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \\._-]", -1))
s.Name
নাম কোথায় । যা 'উত্তর বাই পশ্চিম' এর মতো কিছু হতে পারে। এখন, আমার সবচেয়ে স্পষ্ট সমাধান s.Name
হ'ল প্রতিটি অক্ষরের প্রতিটি চরিত্রের মধ্য দিয়ে চলতে হবে এবং প্রতিটি চিঠির জন্য '[এনএন]' লিখেছিলেন:
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]))
}
}
তবে আমি অনুভব করি এটি একটি বরং অ-মার্জিত সমাধান। গতি আসলেই উদ্বেগের বিষয় নয়, তবে অন্য কোনও উপায় আছে কিনা তা আমার জানা দরকার।