বাস্তব-সময়ে ম্যাচ হাইলাইটিং, প্যাটার্ন ভ্যালিডেশন এবং সাধারণ রেগেক্স প্রতীকের ব্যাখ্যা সহ নিয়মিত প্রকাশনাগুলি পরীক্ষা করুন। আপনার প্রায়ই ব্যবহৃত প্যাটার্নগুলি কাস্টম লেবেলের সাথে সংরক্ষণ এবং পুনরায় ব্যবহার করুন।
ফলাফল দেখতে একটি প্যাটার্ন এবং টেক্সট লিখুন
ফলাফল দেখতে একটি প্যাটার্ন এবং টেক্সট লিখুন
এখনো কোনো সংরক্ষিত প্যাটার্ন নেই
.
নতুন লাইনের ব্যতীত যেকোনো অক্ষর মেলে\d
যেকোনো সংখ্যা (0-9) মেলে\D
যেকোনো অঙ্কহীন অক্ষর মেলে\w
যেকোনো শব্দ অক্ষর (a-z, A-Z, 0-9, _) মেলে\W
যেকোনো অশব্দ অক্ষর মেলে\s
যেকোনো ফাঁকা অক্ষর মেলে\S
যেকোনো অ-ফাঁকা অক্ষর মেলে^
লাইনের শুরুতে মেলে$
লাইনের শেষে মেলে*
পূর্ববর্তী অক্ষরের 0 বা তার বেশি মেলে+
পূর্ববর্তী অক্ষরের 1 বা তার বেশি মেলে?
পূর্ববর্তী অক্ষরের 0 বা 1 মেলে{n}
পূর্ববর্তী অক্ষরের ঠিক n মেলে{n,}
পূর্ববর্তী অক্ষরের কমপক্ষে n মেলে{n,m}
পূর্ববর্তী অক্ষরের মধ্যে n এবং m মেলে[abc]
ব্র্যাকেটে থাকা যেকোনো একটি অক্ষর মেলে[^abc]
ব্র্যাকেটে না থাকা যেকোনো অক্ষর মেলে(abc)
একাধিক টোকেনকে একত্রিত করে এবং ম্যাচ ক্যাপচার করেa|b
বা a বা b মেলে\b
একটি শব্দ সীমার অবস্থান মেলেএকটি রেগুলার এক্সপ্রেশন (রেগেক্স) প্যাটার্ন টেস্টার ডেভেলপার, ডেটা বিশ্লেষক এবং টেক্সট প্রসেসিংয়ের সাথে কাজ করা যেকোনো ব্যক্তির জন্য একটি অপরিহার্য টুল। এই বিস্তৃত রেগেক্স প্যাটার্ন ভ্যালিডেটর আপনাকে রিয়েল-টাইমে নিয়মিত এক্সপ্রেশন তৈরি, পরীক্ষা এবং পরিশোধন করতে দেয়, প্যাটার্ন ম্যাচের উপর তাত্ক্ষণিক ভিজ্যুয়াল প্রতিক্রিয়া প্রদান করে। আপনি যদি ইমেল ঠিকানা যাচাই করছেন, লগ ফাইল পার্স করছেন, অথবা টেক্সট থেকে নির্দিষ্ট ডেটা বের করছেন, আমাদের রেগেক্স টেস্টার উন্নয়ন এবং ডিবাগিং প্রক্রিয়াকে দ্রুত এবং আরও স্বজ্ঞাত করে তোলে।
রেগুলার এক্সপ্রেশনগুলি শক্তিশালী প্যাটার্ন-ম্যাচিং সিকোয়েন্স যা জটিল টেক্সট অনুসন্ধান, যাচাইকরণ এবং ম্যানিপুলেশনকে সক্ষম করে। তবে, তাদের সিনট্যাক্স জটিল এবং মাস্টার করা চ্যালেঞ্জিং হতে পারে। এই রেগেক্স প্যাটার্ন টেস্টার প্রক্রিয়াটিকে সহজ করে তোলে, যখন আপনি টাইপ করেন তখন ম্যাচগুলি হাইলাইট করে, প্যাটার্ন সিনট্যাক্স যাচাই করে এবং ভবিষ্যতের রেফারেন্সের জন্য প্রায়শই ব্যবহৃত প্যাটার্নগুলি সংরক্ষণ করতে দেয়।
আমাদের রেগেক্স প্যাটার্ন ভ্যালিডেটর ব্যবহার করা সহজ এবং স্বজ্ঞাত। শুরু করতে এই পদক্ষেপগুলি অনুসরণ করুন:
একটি রেগুলার এক্সপ্রেশন প্যাটার্ন প্রবেশ করুন: নির্ধারিত ইনপুট ফিল্ডে আপনার রেগেক্স প্যাটার্ন টাইপ করুন। টুলটি রিয়েল-টাইমে আপনার প্যাটার্ন যাচাই করে, আপনাকে যেকোনো সিনট্যাক্স ত্রুটির জন্য সতর্ক করে।
রেগেক্স ফ্ল্যাগ নির্বাচন করুন: আপনার প্যাটার্নের জন্য উপযুক্ত ফ্ল্যাগগুলি নির্বাচন করুন:
g
(গ্লোবাল): প্রথম ম্যাচের পরে থামার পরিবর্তে সমস্ত ম্যাচ খুঁজুনi
(কেস ইনসেনসিটিভ): প্যাটার্নটিকে কেস-অবজ্ঞাত করুনm
(মাল্টিলাইন): ^
এবং $
প্রতিটি লাইনের শুরু/শেষে ম্যাচ করেটেস্ট টেক্সট ইনপুট করুন: আপনার প্যাটার্নের বিরুদ্ধে পরীক্ষা করতে চান এমন টেক্সটটি টেস্ট টেক্সট এলাকায় প্রবেশ করুন।
রিয়েল-টাইমে ফলাফল দেখুন: আপনি টাইপ করার সাথে সাথে, টুলটি স্বয়ংক্রিয়ভাবে:
গুরুত্বপূর্ণ প্যাটার্নগুলি সংরক্ষণ করুন: আপনি যে প্যাটার্নগুলি প্রায়ই ব্যবহার করেন:
ফলাফল কপি করুন: "ম্যাচ কপি করুন" বোতামটি ব্যবহার করে সমস্ত ম্যাচ করা টেক্সট আপনার ক্লিপবোর্ডে কপি করুন যাতে আপনি অন্যান্য অ্যাপ্লিকেশনে ব্যবহার করতে পারেন।
ইন্টারফেসটি দুটি প্রধান প্যানেলে বিভক্ত: ইনপুট প্যানেল যেখানে আপনি আপনার প্যাটার্ন এবং টেস্ট টেক্সট প্রবেশ করেন, এবং ফলাফল প্যানেল যা ম্যাচ এবং প্যাটার্ন তথ্য প্রদর্শন করে।
রেগুলার এক্সপ্রেশনগুলি বিশেষ অক্ষর এবং সিকোয়েন্স ব্যবহার করে অনুসন্ধান প্যাটার্নগুলি সংজ্ঞায়িত করতে। এখানে আমাদের টুল দ্বারা সমর্থিত মৌলিক রেগেক্স প্রতীকগুলির একটি গাইড:
প্রতীক | বর্ণনা | উদাহরণ | ম্যাচ |
---|---|---|---|
. | নতুন লাইনের ব্যতীত যেকোনো অক্ষর ম্যাচ করে | a.c | "abc", "adc", "a1c", ইত্যাদি। |
\d | যেকোনো সংখ্যা (0-9) ম্যাচ করে | \d{3} | "123", "456", "789", ইত্যাদি। |
\D | যেকোনো অ-সংখ্যা ম্যাচ করে | \D+ | "abc", "xyz", ইত্যাদি। |
\w | যেকোনো শব্দ অক্ষর (a-z, A-Z, 0-9, _) ম্যাচ করে | \w+ | "abc123", "test_123", ইত্যাদি। |
\W | যেকোনো অ-শব্দ অক্ষর ম্যাচ করে | \W+ | "!@#", " + ", ইত্যাদি। |
\s | যেকোনো সাদা অক্ষর ম্যাচ করে | a\sb | "a b", "a\tb", ইত্যাদি। |
\S | যেকোনো অ-সাদা অক্ষর ম্যাচ করে | \S+ | "abc", "123", ইত্যাদি। |
প্রতীক | বর্ণনা | উদাহরণ | ম্যাচ |
---|---|---|---|
^ | লাইনের শুরুতে ম্যাচ করে | ^abc | একটি লাইনের শুরুতে "abc" |
$ | লাইনের শেষে ম্যাচ করে | abc$ | একটি লাইনের শেষে "abc" |
\b | একটি শব্দের সীমানায় ম্যাচ করে | \bword\b | "word" একটি সম্পূর্ণ শব্দ হিসাবে |
প্রতীক | বর্ণনা | উদাহরণ | ম্যাচ |
---|---|---|---|
* | পূর্ববর্তী অক্ষরের 0 বা তার বেশি ম্যাচ করে | a*b | "b", "ab", "aab", ইত্যাদি। |
+ | পূর্ববর্তী অক্ষরের 1 বা তার বেশি ম্যাচ করে | a+b | "ab", "aab", "aaab", ইত্যাদি। |
? | পূর্ববর্তী অক্ষরের 0 বা 1 ম্যাচ করে | colou?r | "color", "colour" |
{n} | পূর্ববর্তী অক্ষরের ঠিক nটি ম্যাচ করে | a{3} | "aaa" |
{n,} | পূর্ববর্তী অক্ষরের অন্তত nটি ম্যাচ করে | a{2,} | "aa", "aaa", "aaaa", ইত্যাদি। |
{n,m} | পূর্ববর্তী অক্ষরের n থেকে m এর মধ্যে ম্যাচ করে | a{2,4} | "aa", "aaa", "aaaa" |
প্রতীক | বর্ণনা | উদাহরণ | ম্যাচ |
---|---|---|---|
[abc] | ব্র্যাকেটে থাকা যেকোনো একটি অক্ষর ম্যাচ করে | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | ব্র্যাকেটে না থাকা যেকোনো অক্ষর ম্যাচ করে | [^aeiou] | "a", "e", "i", "o", "u" বাদে যেকোনো অক্ষর |
[a-z] | পরিসরে থাকা যেকোনো অক্ষর ম্যাচ করে | [a-z] | যেকোনো ছোট হাতের অক্ষর |
প্রতীক | বর্ণনা | উদাহরণ | ম্যাচ |
---|---|---|---|
(abc) | একাধিক টোকেনকে একত্রিত করে এবং ম্যাচ ক্যাপচার করে | (abc)+ | "abc", "abcabc", ইত্যাদি। |
a|b | বা b এর যেকোনো একটি ম্যাচ করে | cat|dog | "cat", "dog" |
একবার আপনি মৌলিক বিষয়গুলি আয়ত্ত করলে, আপনি জটিল টেক্সট প্রসেসিং চ্যালেঞ্জগুলি সমাধান করতে আরও জটিল প্যাটার্ন তৈরি করতে পারেন:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
এই প্যাটার্নটি ইমেল ঠিকানাগুলি যাচাই করে নিশ্চিত করে যে সেগুলি মানক ফরম্যাট অনুসরণ করে: username@domain.tld।
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
এই প্যাটার্নটি URL যাচাই করে, http/https প্রোটোকল সহ বা ছাড়া।
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
এই প্যাটার্নটি বিভিন্ন ফরম্যাটে মার্কিন ফোন নম্বরগুলি ম্যাচ করে: (123) 456-7890, 123-456-7890, অথবা 1234567890।
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
এই প্যাটার্নটি YYYY-MM-DD ফরম্যাটে তারিখগুলি যাচাই করে, মাস এবং দিনের পরিসরের জন্য মৌলিক যাচাইকরণের সাথে।
লুকআহেড এবং লুকবিহাইন্ড অ্যাসারশনগুলি আপনাকে প্যাটার্নগুলি ম্যাচ করতে দেয় শুধুমাত্র যদি সেগুলি অন্য প্যাটার্ন দ্বারা অনুসরণ বা পূর্ববর্তী হয়:
a(?=b)
"a" কে ম্যাচ করে শুধুমাত্র যদি এটি "b" দ্বারা অনুসরণ করা হয়a(?!b)
"a" কে ম্যাচ করে শুধুমাত্র যদি এটি "b" দ্বারা অনুসরণ না করা হয়(?<=a)b
"b" কে ম্যাচ করে শুধুমাত্র যদি এটি "a" দ্বারা পূর্ববর্তী হয়(?<!a)b
"b" কে ম্যাচ করে শুধুমাত্র যদি এটি "a" দ্বারা পূর্ববর্তী না হয়আমাদের রেগেক্স টেস্টার বিভিন্ন ফ্ল্যাগ সমর্থন করে যা প্যাটার্নের ম্যাচ করার পদ্ধতিকে পরিবর্তন করে:
^
এবং $
প্রতিটি লাইনের শুরু/শেষে ম্যাচ করেরেগুলার এক্সপ্রেশনগুলির বিভিন্ন ক্ষেত্র জুড়ে অনেক ব্যবহারিক অ্যাপ্লিকেশন রয়েছে:
ফর্ম যাচাইকরণ: ব্যবহারকারীর ইনপুটগুলি প্রয়োজনীয় ফরম্যাটের সাথে মেলে তা নিশ্চিত করুন:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
এইচটিএমএল পার্সিং: নির্দিষ্ট উপাদান বা বৈশিষ্ট্যগুলি বের করুন:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
লগ ফাইল বিশ্লেষণ: লগ এন্ট্রিগুলি থেকে তথ্য বের করুন:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
CSV পার্সিং: সম্ভাব্য উদ্ধৃত ক্ষেত্রগুলির সাথে কমা-বিচ্ছিন্ন মানগুলি প্রক্রিয়া করুন:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
ফাইন্ড এবং রিপ্লেস: প্রতিস্থাপনের জন্য প্যাটার্ন চিহ্নিত করুন:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
বিষয়বস্তু বের করা: অগঠিত টেক্সট থেকে নির্দিষ্ট তথ্য বের করুন:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
সিনট্যাক্স হাইলাইটিং: ভাষার নির্মাণগুলি চিহ্নিত করুন:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
কোড রিফ্যাক্টরিং: আপডেট করার জন্য প্রয়োজনীয় প্যাটার্নগুলি খুঁজুন:
\.oldMethod\(
eval\(
আমাদের রেগেক্স প্যাটার্ন টেস্টারে একটি প্যাটার্ন ব্যবস্থাপনা সিস্টেম রয়েছে যা আপনাকে আপনার প্রায়শই ব্যবহৃত এক্সপ্রেশনগুলি সংরক্ষণ এবং পুনরায় ব্যবহার করতে দেয়:
প্যাটার্নগুলি সংরক্ষণ করার কথা বিবেচনা করুন যা:
প্যাটার্নগুলি সংরক্ষণ করার সময়, বর্ণনামূলক লেবেল ব্যবহার করুন যা:
আপনার সংরক্ষিত প্যাটার্নগুলি সংগঠিত করুন:
যদিও আমাদের টুল ব্যবহারকারীদের মধ্যে প্যাটার্ন শেয়ারিং সরাসরি সমর্থন করে না, আপনি:
অভিজ্ঞ ডেভেলপাররাও রেগুলার এক্সপ্রেশন নিয়ে চ্যালেঞ্জের মুখোমুখি হন। এখানে সাধারণ সমস্যাগুলির সমাধান রয়েছে:
যদি আপনার প্যাটার্ন একটি যাচাইকরণ ত্রুটি দেখায়:
যদি আপনার রেগেক্স ধীর হয় বা ব্রাউজারের ল্যাগ সৃষ্টি করে:
(a+)+
)যদি আপনার প্যাটার্ন অপ্রয়োজনীয় টেক্সট ম্যাচ করে:
^
এবং $
) ব্যবহার করুন\b
) যোগ করুনযদি আপনার প্যাটার্ন প্রত্যাশিত টেক্সট ম্যাচ না করে:
যদিও রেগেক্স শক্তিশালী, এটি প্রতিটি টেক্সট প্রসেসিং কাজের জন্য সর্বদা সেরা সমাধান নয়:
সরল টেক্সট অপারেশনের জন্য, স্থানীয় স্ট্রিং মেথডগুলি প্রায়শই পরিষ্কার এবং আরও কার্যকর:
String.indexOf()
সাবস্ট্রিং খুঁজতেString.startsWith()
এবং String.endsWith()
স্ট্রিংয়ের সীমানা পরীক্ষা করতেString.split()
মৌলিক টোকেনাইজেশনের জন্যগঠনমূলক ডেটা ফরম্যাটের জন্য, নিবেদিত পার্সারগুলি আরও দৃঢ়:
টেক্সটের অর্থ বোঝার জন্য, শুধুমাত্র প্যাটার্ন নয়:
রেগেক্সের বিকল্পগুলি বিবেচনা করুন যখন:
একটি রেগুলার এক্সপ্রেশন (রেগেক্স) হল অক্ষরের একটি সিকোয়েন্স যা একটি অনুসন্ধান প্যাটার্ন সংজ্ঞায়িত করে। এই প্যাটার্নগুলি স্ট্রিং অনুসন্ধান, ম্যাচিং এবং টেক্সট ম্যানিপুলেশন অপারেশনগুলির জন্য ব্যবহার করা যেতে পারে।
একটি রেগেক্স প্যাটার্ন টেস্টার আপনাকে নিয়মিত এক্সপ্রেশনগুলি তৈরি এবং ডিবাগ করতে সাহায্য করে তাত্ক্ষণিক ভিজ্যুয়াল প্রতিক্রিয়া প্রদান করে, প্যাটার্ন সিনট্যাক্স যাচাই করে এবং আপনাকে কোডে প্রথমে প্রয়োগ করার আগে বিভিন্ন প্যাটার্ন এবং ফ্ল্যাগগুলির সাথে পরীক্ষা করার অনুমতি দেয়।
যে বিশেষ অক্ষরগুলি সাধারণত রেগেক্সে বিশেষ অর্থ রাখে সেগুলি ম্যাচ করার জন্য, আপনাকে সেগুলি একটি ব্যাকস্ল্যাশ দিয়ে পালিত করতে হবে। উদাহরণস্বরূপ, একটি লিটারাল ডট ম্যাচ করতে, \.
ব্যবহার করুন কেবল .
এর পরিবর্তে।
.*
এবং .*?
এর মধ্যে পার্থক্য কী?.*
একটি লোভী কোয়ানটিফায়ার যা যতটা সম্ভব বেশি অক্ষর ম্যাচ করে, যখন .*?
একটি অলস (অলস) কোয়ানটিফায়ার যা যতটা সম্ভব কম অক্ষর ম্যাচ করে। এই পার্থক্যটি গুরুত্বপূর্ণ যখন আপনি দীর্ঘতম ম্যাচের পরিবর্তে সবচেয়ে সংক্ষিপ্ত ম্যাচ খুঁজতে চান।
যদিও মূল রেগেক্স সিনট্যাক্স অনেক ভাষায় অনুরূপ, বাস্তবায়নে সূক্ষ্ম পার্থক্য রয়েছে। আমাদের টেস্টার জাভাস্ক্রিপ্টের রেগেক্স ইঞ্জিন ব্যবহার করে, যা অনেক ওয়েব ভাষার সাথে সামঞ্জস্যপূর্ণ তবে পাইটন, জাভা বা পার্লের মতো ভাষায় রেগেক্স থেকে পার্থক্য থাকতে পারে।
একটি সম্পূর্ণ স্ট্রিং একটি প্যাটার্নের সাথে মেলে তা যাচাই করতে, আপনার রেগেক্সের শুরুতে ^
অ্যাঙ্কর এবং শেষে $
অ্যাঙ্কর ব্যবহার করুন। উদাহরণস্বরূপ, ^[0-9]+$
কেবলমাত্র সেই স্ট্রিংগুলিকে ম্যাচ করবে যা সম্পূর্ণরূপে সংখ্যার।
ক্যাপচারিং গ্রুপগুলি, যা বন্ধনী ()
দিয়ে তৈরি হয়, আপনাকে ম্যাচ করা টেক্সটের নির্দিষ্ট অংশগুলি বের করতে দেয়। আমাদের টেস্টারে, আপনি সমস্ত ম্যাচ দেখতে পারেন, ক্যাপচার করা গ্রুপ সহ। প্রোগ্রামিং ভাষায়, আপনি সাধারণত ম্যাচ ফলাফলের সূচক ব্যবহার করে এই ক্যাপচারগুলি অ্যাক্সেস করতে পারেন।
রেগেক্সের কার্যকারিতা উন্নত করতে: অক্ষরের শ্রেণী নিয়ে নির্দিষ্ট হন, অপ্রয়োজনীয় ক্যাপচারিং গ্রুপগুলি এড়িয়ে চলুন (যখন সম্ভব হয় অ-ক্যাপচারিং গ্রুপগুলি (?:...)
ব্যবহার করুন), লুকআহেড/লুকবিহাইন্ডের ব্যবহার সীমিত করুন, এবং বিপর্যয়কর ব্যাকট্র্যাকিং প্যাটার্নগুলি যেমন নেস্টেড কোয়ানটিফায়ারগুলি এড়িয়ে চলুন।
সাধারণ ভুলগুলির মধ্যে রয়েছে: বিশেষ অক্ষরগুলি পালানো হচ্ছে না, প্যাটার্নগুলি খুব লোভী হয়ে উঠছে, প্যাটার্নগুলি অ্যাঙ্কর করতে ভুলে যাওয়া (যেমন ^
এবং $
), এবং অত্যধিক জটিল এক্সপ্রেশন লেখা যা বজায় রাখা কঠিন।
রেগুলার এক্সপ্রেশনগুলি HTML বা XML-এর মতো নেস্টেড কাঠামো পার্স করার জন্য ভালভাবে উপযুক্ত নয়। যদিও আপনি সহজ HTML ম্যাচিংয়ের জন্য রেগেক্স প্যাটার্ন তৈরি করতে পারেন, জটিল HTML প্রসেসিংয়ের জন্য নিবেদিত HTML পার্সার ব্যবহার করা সাধারণত আরও ভাল।
আজই আমাদের রেগেক্স প্যাটার্ন টেস্টারটি চেষ্টা করুন আপনার টেক্সট প্রসেসিং কাজগুলি সহজতর করতে, ইনপুট ফরম্যাট যাচাই করতে এবং অগঠিত টেক্সট থেকে অর্থপূর্ণ ডেটা বের করতে। আপনি যদি রেগুলার এক্সপ্রেশনগুলির মৌলিক বিষয়গুলি শিখছেন বা জটিল প্যাটার্ন ম্যাচিংয়ের উপর কাজ করছেন, আমাদের টুলটি আপনাকে কার্যকরভাবে আপনার রেগেক্স প্যাটার্ন তৈরি, পরীক্ষা এবং পরিশোধন করার জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি প্রদান করে।
আপনার কাজে দরকারী হতে পারে আরো টুল খুঁজে বের করুন