নিয়মিত অভিব্যক্তি: ফাঁকা স্থান অনুসন্ধান করুন (ট্যাবস / স্পেস) তবে নিউলাইনগুলি নয়


97

আমি কীভাবে নিয়মিত ভাব প্রকাশ করতে পারি যা স্পেস বা ট্যাবগুলির জন্য পরীক্ষা করে তবে নতুন লাইনের নয়। আমি চেষ্টা করেছি \sকিন্তু জানতে পেরেছি যে এটি নিউলাইনগুলির জন্যও পরীক্ষা করে।

আমি সি # / ডাব্লুপিএফ ব্যবহার করি তবে এটি কোনও বিষয় নয়।

উত্তর:


193

চরিত্রের ক্লাস ব্যবহার করুন: [ \t]


4
আমার সমস্যার জন্য দাগ দিন। কেবল পার্ল- অক্ষর শ্রেণীর জন্য স্ট্যাকওভারফ্লো.com/ a/ 25956935/292060 দেখুন \h, তবে আপনাকে এখানে তালিকায় যুক্ত করার প্রয়োজন হলে এমন আরও অনেক শ্বেতস্পেস অক্ষর রয়েছে তা দেখায়।
গুদেডে

4
কেন আগে একটা জায়গা থাকা উচিত \t?
ওকার

4
@ ওকার একটি আক্ষরিক স্থান ক্যাপচার করতে
কোডমনকি

এটি অন্যান্য ধরণের জায়গাগুলির সাথে মেলে না, যেমন অন্যান্য উত্তর উল্লেখ করেছে।
Gus

4
Space t এর আগে একটা জায়গা কেন?
ক্যাটবিল্টস

36

এই অক্ষর সেট চেষ্টা করুন:

[ \t]

এটি কেবল কোনও স্থান বা একটি ট্যাবুলেটারের সাথে মেলে না।


14

@ ইরির্কর ইলেটেন্ডি যেমন উল্লেখ করেছেন, গৃহীত সমাধানটি কেবল দুটি সাদা স্থানের অক্ষর বিবেচনা করে: অনুভূমিক ট্যাব (ইউ + 0009), এবং একটি ব্রেকিং স্পেস (ইউ + 0020)। এটি অন্যান্য শ্বেতস্পেস অক্ষরগুলিকে যেমন ভাঙা-বিহীন স্থানগুলি বিবেচনা করে না (যা আমি যে পাঠ্যটির সাথে মোকাবিলার চেষ্টা করছি তাতে থাকা) consider আরও একটি সম্পূর্ণ সাদা বাক্সের অক্ষর তালিকা উইকিপিডিয়ায় অন্তর্ভুক্ত করা হয়েছে এবং লিঙ্কযুক্ত পার্ল উত্তরেও উল্লেখ করা হয়েছে । একটি সাধারণ সি # সমাধান যা এই অন্যান্য অক্ষরের জন্য অ্যাকাউন্ট করে তা অক্ষর শ্রেণীর বিয়োগফল ব্যবহার করে তৈরি করা যেতে পারে

[\s-[\r\n]]

অথবা, এরিক্র ইলেডেন্ডির সমাধান সহ আপনি পান

[\s\u3000-[\r\n]]

3

দ্রষ্টব্য: সিজেকে পাঠ্য (চাইনিজ, জাপানি এবং কোরিয়ান) এর সাথে যারা লেনদেন করেন, তাদের পক্ষে ডাবল-বাইট স্পেস (ইউনিকোড \u3000) আমি এতদূর চেষ্টা করেছি এমন কোনও প্রয়োগের জন্য অন্তর্ভুক্ত নয়\s (পার্ল,। নেট, পিসিআরই, পাইথন)। আপনাকে প্রথমে আপনার স্ট্রিংগুলি স্বাভাবিক করতে হবে (যেমন সমস্ত \u3000দিয়ে প্রতিস্থাপন করে \u0020), অথবা আপনাকে এমন একটি অক্ষর সেট ব্যবহার করতে হবে যাতে আপনি এই লক্ষ্যবস্তুটি অন্তর্ভুক্ত করবেন যা আপনি লক্ষ্য করছেন এমন অন্যান্য সাদা স্থানের পাশাপাশি [ \t\u3000]

আপনি যদি পার্ল বা পিসিআরই ব্যবহার করে থাকেন তবে আপনার \hকাছে অনুভূমিক সাদা স্থানের জন্য শর্টহ্যান্ড ব্যবহার করার বিকল্প রয়েছে , যা অন্যদের মধ্যে একক বাইট স্থান, ডাবল-বাইট স্পেস এবং ট্যাব অন্তর্ভুক্ত বলে মনে হয়। আরও বিশদের জন্য ম্যাচ হোয়াইটস্পেস তবে নতুন লাইনের (পার্ল) থ্রেডটি দেখুন।

যাইহোক, এই \hশর্টহ্যান্ডটি। নেট এবং সি # এর জন্য কার্যকর করা হয়নি , সর্বোপরি আমি বলতে সক্ষম হয়েছি।


4
ভাল যুক্তি. জাভার \h(জাভা 8 চালু) অন্তর্ভুক্ত করে \u3000, কিন্তু \sযদি না আপনি UNICODE_CHARACTER_CLASS মোড (জাভা 7-এ প্রচলিত) সেট করতে চান, না।
অ্যালান মুর

0

আপনি যদি কোডের নীচে স্থানটি প্রতিস্থাপন করতে চান তবে আমার জন্য কাজ করেছেC#

Regex.Replace(Line,"\\\s","");

ট্যাবের জন্য

Regex.Replace(Line,"\\\s\\\s","");

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.