আমি সাধারণ রেজেেক্স তৈরির চেষ্টা করছি যা কোনও লাইন ফাঁকা আছে কিনা তা যাচাই করবে।
কেস;
" some" // not blank
" " //blank
"" // blank
আমি সাধারণ রেজেেক্স তৈরির চেষ্টা করছি যা কোনও লাইন ফাঁকা আছে কিনা তা যাচাই করবে।
কেস;
" some" // not blank
" " //blank
"" // blank
উত্তর:
আপনি যে প্যাটার্নটি চান সেটি হ'ল মাল্টলাইন মোডে এই জাতীয় কিছু:
^\s*$
ব্যাখ্যা:
^ স্ট্রিং অ্যাঙ্কারের শুরু।$ স্ট্রিং অ্যাঙ্কারের সমাপ্তি।\s হোয়াইটস্পেস ক্যারেক্টার ক্লাস।* এর শূন্য বা আরও বেশি পুনরাবৃত্তি।মাল্টলাইন মোডে ^এবং $লাইনের শুরু এবং শেষটিও মিলায় ।
আপনি প্রদত্ত স্ট্রিংটি line"ফাঁকা" আছে কিনা তা পরীক্ষা করতে পারেন (অর্থাত্ কেবল শ্বেতস্থান রয়েছে) trim(), তারপরে ফলাফলের স্ট্রিংটি পরীক্ষা করে দেখুন কিনা isEmpty()।
জাভাতে, এটি এমন কিছু হবে:
if (line.trim().isEmpty()) {
// line is "blank"
}
রেজেক্স সমাধানটি নীচে অ্যাঙ্করগুলি ছাড়াই ( matchesজাভাতে সংজ্ঞায়িত হওয়ার কারণে) আরও সহজ করা যেতে পারে :
if (line.matches("\\s*")) {
// line is "blank"
}
String String.trim()
boolean String.isEmpty()
trueযদি, এবং কেবল যদি, length()হয় 0।boolean String.matches(String regex)
if line.strip(): যেহেতু একটি খালি স্ট্রিং মূল্যায়ন করেFalse
আসলে মাল্টলাইন মোডে আরও সঠিক উত্তরটি হ'ল:
/((\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
গৃহীত উত্তর: ^\s*$শেষ লাইনটি ফাঁকা থাকলে (মাল্টলাইন মোডে) কোনও দৃশ্যের সাথে মেলে না।
এটা চেষ্টা কর:
^\s*$
\sলাইন বিরতিগুলির সাথেও মেলে, সুতরাং আপনি ক্রমাগত খালি রেখা যুক্ত স্ট্রিংয়ের ভিতরে একক ফাঁকা লাইন "খুঁজে পাবেন না"।
সবচেয়ে পোর্টেবল Regex হবে ^[ \t\n]*$একটি খালি স্ট্রিং (নোট যে আপনি প্রতিস্থাপন করতে হবে মেলে \tএবং \nট্যাব এবং সম্পর্কে newline তদনুসারে সঙ্গে) এবং [^ \n\t]একটি অ-হোয়াইটস্পেস স্ট্রিং মেলে।
[ \t]
\rকরতে হবে যাতে রেজেেক্সটি হবে ^[ \t\r\n]*$। তবে ^\s*$আরও ভাল - আরও সংক্ষিপ্ত। আপনি যদি নতুন \h^\h*$
এই উত্তরের জন্য bchr02 এ সম্পূর্ণ ক্রেডিট । যাইহোক, খালি লাইন অনুসরণ করে (মন্তব্যের শেষে) যে রেখাগুলি রয়েছে তার জন্য দৃশ্যটি ধরতে আমাকে কিছুটা পরিবর্তন করতে হয়েছিল। রেজেক্সের সাথে খালি লাইনটি মিলছে ।*/*/
নতুন: (^(\r\n|\n|\r)$)|(^(\r\n|\n|\r))|^\s*$/gm
আমি যা করেছি তা হ'ল ^লাইনের সূচনা বোঝাতে দ্বিতীয় চরিত্র হিসাবে যুক্ত করা।
আচ্ছা ... আমি চারপাশে টিনক করেছিলাম (নোটপ্যাড ++ ব্যবহার করে) এবং এটিই আমি খুঁজে পেয়েছি সমাধান solution
\ N \ n গুলি
line n লাইনের শেষের জন্য (যেখানে আপনি ম্যাচ শুরু করেন) - আমার ক্ষেত্রে ক্যারেট সাহায্য করবে না কারণ সারিটির শুরুটি একটি স্ট্রিং \ এর পরবর্তী স্ট্রিং পর্যন্ত কোনও স্থান নেয়
আশা করি এটা সাহায্য করবে
test_vec <- c(" some"," ","")। আপনার সমাধান: grepl("\\n\\s",test_vec) # [1] FALSE FALSE FALSE, ভোট সমাধান: grepl("^\\s*$",test_vec) # [1] FALSE TRUE TRUE। ভোট দেওয়া সমাধান প্রত্যাশিত ফলাফল দেয়, আপনার হয় না।
ctrl+fনোটপ্যাড ++ এ করছেন ? এই ক্ষেত্রে আপনি "বর্ধিত" অনুসন্ধান মোড নির্বাচন করে এবং 'ular n \ s' অনুসন্ধান করে ফাঁকা রেখা খুঁজে পেতে পারেন, যদি আপনি "নিয়মিত প্রকাশ" নির্বাচন করেন তবে আপনার স্ট্রিং একইর সাথে মিলবে এবং আপনি এটি করতে পারেন @ পলিজেলব্রিকেন্টস এর সমাধানটিও ব্যবহার করে দেখুন The পরবর্তীটি সত্যই লাইনটির সাথে মিলবে, আপনি যাচাই করতে পারেন এবং পার্থক্যটি দেখতে পারেন I আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি কী পরামর্শ দিচ্ছেন সে সম্পর্কে আরও পরিষ্কার হওয়ার জন্য আপনার উত্তরটি সম্পাদনা করুন, যাতে পাঠকরা আরও মূল্য নিতে পারেন এটি