TL; ড
আপনার অক্ষর শ্রেণিতে কেবল একটি স্থান যুক্ত করুন ।
^[a-zA-Z0-9_ ]*$
এখন, আপনি যদি কঠোর হতে চান ...
উপরেরটি ঠিক সঠিক নয়। শূন্য বা ততোধিক*
অর্থের কারণে , এটি নীচের সমস্ত ক্ষেত্রে মেলে যা সাধারণত একটির সাথে মিলতে বোঝায় না:
- একটি খালি স্ট্রিং, ""।
- একটি স্ট্রিং পুরোপুরি ফাঁকা স্থান নিয়ে গঠিত, ""।
- একটি স্ট্রিং যা নেতৃত্ব দেয় এবং / অথবা স্পেস দিয়ে ট্রেল করে, "হ্যালো ওয়ার্ল্ড"।
- "হ্যালো ওয়ার্ল্ড" শব্দের মধ্যে একাধিক স্পেস রয়েছে এমন একটি স্ট্রিং।
মূলত আমি ভাবিনি যে এই জাতীয় বিবরণ intoোকানো মূল্যবান, কারণ ওপি এমন একটি প্রাথমিক প্রশ্ন জিজ্ঞাসা করছিল যা দেখে মনে হয় যে কঠোরতা কোনও উদ্বেগ নয়। এখন যদিও প্রশ্নটি কিছু জনপ্রিয়তা পেয়েছে, আমি বলতে চাই ...
যা আমার স্বাদে (ব্যবহার না করে \w
) অনুবাদ করে:
^[a-zA-Z0-9_]+( [a-zA-Z0-9_]+)*$
(দয়া করে নির্বিশেষে @ প্লিজটিকে উত্সাহিত করুন))
এই (এবং @ স্টিমার) এর উত্তর সম্পর্কে কিছু বিষয় লক্ষণীয়:
যদি আপনি শব্দের মধ্যে একাধিক স্পেসের অনুমতি দিতে চান (বলুন, আপনি যদি দুর্ঘটনাজনিত দ্বৈত-ফাঁকা স্থান অনুমতি দিতে চান বা আপনি যদি পিডিএফ থেকে অনুলিপি-পাঠানো টেক্সট নিয়ে কাজ করছেন) তবে +
স্পেসের পরে একটি যুক্ত করুন :
^\w+( +\w+)*$
আপনি যদি ট্যাব এবং নতুন লাইনের (সাদা স্থানের অক্ষর) অনুমতি দিতে চান তবে স্থানটি একটি দিয়ে প্রতিস্থাপন করুন \s+
:
^\w+(\s+\w+)*$
এখানে আমি +
ডিফল্টরূপে প্রস্তাব করছি কারণ উদাহরণস্বরূপ, উইন্ডোজ লাইনব্র্যাকস দুটি ক্রমযুক্ত সাদা বর্ণের অক্ষর নিয়ে গঠিত \r\n
, সুতরাং আপনার +
উভয়কেই ধরতে হবে।
এখনও কাজ করছে না?
আপনি নিয়মিত প্রকাশের কোন উপভাষা ব্যবহার করছেন তা পরীক্ষা করুন। * জাভা র মত ভাষাতে আপনি আপনার ব্যাকস্ল্যাশ, অব্যাহতি করতে হবে অর্থাত \\w
এবং \\s
। পুরোনো বা একাধিক মৌলিক ভাষা এবং ইউটিলিটিগুলি, মত sed
, \w
এবং \s
সংজ্ঞায়িত না হয়, তাই তাদের চরিত্র ক্লাস, সঙ্গে লিখতে যেমন [a-zA-Z0-9_]
এবং [\f\n\p\r\t]
যথাক্রমে।
* আমি জানি এই প্রশ্নটি ট্যাগ করাvb.net, তবে 25,000+ ভিউয়ের উপর ভিত্তি করে, আমি অনুমান করছি যে এটি কেবলমাত্র এই ভাবেন যাঁরা এই প্রশ্নটি দেখছেন। বর্তমানে অনুসন্ধান বাক্যাংশ, নিয়মিত অভিব্যক্তি স্পেস শব্দটির জন্য এটি গুগলে প্রথম হিট ।