Go:
একটি নমুনা মেলে অক্ষরগুলি মুছে ফেলা
কিভাবে:
Go-তে, নির্দিষ্ট নিদর্শনের সাথে মিলে যায় এমন অক্ষরগুলি মুছে ফেলা regexp
প্যাকেজ ব্যবহার করে সহজেই সম্পন্ন করা যেতে পারে। এখানে, আমরা কীভাবে স্ট্রিং থেকে সব সংখ্যাগুলি, এরপরে সব অ-অল্ফানিউমেরিক অক্ষর মুছে ফেলতে হয় তা উদাহরণ হিসাবে দেখাব।
- সব সংখ্যা মুছে ফেলা:
package main
import (
"fmt"
"regexp"
)
func main() {
text := "Go1 কুল, কিন্তু Go2 আরও কুলার হবে! এখন: 2023."
// সংখ্যার জন্য নিয়মিত প্রকাশনার সংকলন করুন
re, err := regexp.Compile("[0-9]+")
if err != nil {
fmt.Println("রেজেক্স সংকলনে ত্রুটি:", err)
return
}
// সংখ্যাগুলি একটি খালি স্ট্রিং দ্বারা প্রতিস্থাপন করুন
result := re.ReplaceAllString(text, "")
fmt.Println(result) // আউটপুট: Go কুল, কিন্তু Go আরও কুলার হবে! এখন: .
}
- সব অ-অল্ফানিউমেরিক অক্ষর মুছে ফেলা:
package main
import (
"fmt"
"regexp"
)
func main() {
text := "Go হল #1 @ প্রোগ্রামিং ভাষাগুলিতে!"
// অ-অল্ফানিউমেরিক অক্ষরগুলির জন্য নিয়মিত প্রকাশনার সংকলন করুন
re, err := regexp.Compile("[^a-zA-Z0-9]+")
if err != nil {
fmt.Println("রেজেক্স সংকলনে ত্রুটি:", err)
return
}
// অ-অল্ফানিউমেরিক অক্ষরগুলি একটি খালি স্ট্রিং দ্বারা প্রতিস্থাপন করুন
result := re.ReplaceAllString(text, "")
fmt.Println(result) // আউটপুট: Gois1programminglanguages
}
গভীর ডুব
regexp
প্যাকেজ Go-তে নিয়মিত প্রকাশনার সাথে প্যাটার্ন মিল এবং ম্যানিপুলেশনের জন্য একটি শক্তিশালী ইন্টারফেস প্রদান করে। এটির বাস্তবায়ন RE2, একটি নিয়মিত প্রকাশনা লাইব্রেরি থেকে উদ্ভূত, যা রৈখিক সময় নির্বাহের গ্যারান্টি দেয়, অন্য কিছু regex ইঞ্জিনে উপস্থিত “বিপর্যয়কর ব্যাকট্র্যাকিং” ইস্যু এড়াতে সক্ষম করে। এটি Go-র regex-কে বহুবিধ অ্যাপ্লিকেশনের জন্য অপেক্ষাকৃত নিরাপদ এবং দক্ষ করে তোলে।
যদিও regexp
প্যাকেজ প্যাটার্নের সাথে মোকাবেলা করার জন্য একটি সম্পূর্ণ সমাধান, সাধারণ বা খুব নির্দিষ্ট স্ট্রিং ম্যানিপুলেশনের জন্য, অন্যান্য স্ট্রিং ফাংশন যেমন strings.Replace()
, strings.Trim()
, বা স্লাইসিং আরও কার্যকরী বিকল্প অফার করতে পারে। নিয়মিত প্রকাশনা একটি শক্তিশালী টুল, তবে তাদের আপেক্ষিক গণনামূলক ব্যয় মানে এমন অপারেশনের জন্য যা অবজ্ঞা ছাড়াই নির্দিষ্ট করা যেতে পারে, মানক লাইব্রেরির বিকল্পগুলি অন্বেষণ করা কখনও কখনও সহজ এবং আরও দক্ষ কোড প্রদান করতে পারে।