এক বা একাধিক স্পেস বা ট্যাব দ্বারা স্ট্রিং বিস্ফোরিত করুন


141

এক বা একাধিক স্পেস বা ট্যাব দ্বারা কীভাবে আমি একটি স্ট্রিং বিস্ফোরিত করতে পারি?

উদাহরণ:

A      B      C      D

আমি এটি একটি অ্যারে করতে চাই।


শূন্য বা ততোধিক স্পেস থেকে বোঝা যায় যে প্রতিটি উপাদানের একটির সর্বাধিক একটি অক্ষর থাকবে অথবা আপনার অসীম অনেকগুলি খালি উপাদান থাকবে। আপনি কি নিশ্চিত যে আপনি এটি চান?
বিডনলান

হ্যাঁ, এটি সম্ভবত "এক বা একাধিক স্পেস" হওয়া উচিত।
মাইকেল ময়র্স

উত্তর:


323
$parts = preg_split('/\s+/', $str);

5
$ অংশগুলির শেষ উপাদানটি খালি হবে .. সুতরাং এটি সরিয়ে অ্যারে_পপ ($ অংশ);
ব্যবহারকারী 889030

1
@ লুছানের উত্তর অবশ্যই সেরা উত্তর হতে হবে ( stackoverflow.com/a/38481324/1407491 )
নবী KAZ

6
খালি থাকতে পারে এমন অংশটি অপসারণের পরিবর্তে, কেউ ব্যবহার করতে পারেন:$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
কোয়েং করা

49

ট্যাব দ্বারা পৃথক করতে:

$comp = preg_split("/[\t]/", $var);

স্পেস / ট্যাব / নিউলাইন দ্বারা পৃথক করতে:

$comp = preg_split('/\s+/', $var);

একা স্পেস দিয়ে আলাদা করতে:

$comp = preg_split('/ +/', $var);


23

এইটা কাজ করে:

$string = 'A   B C          D';
$arr = preg_split('/[\s]+/', $string);

19

লেখক বিস্ফোরণ চেয়েছিলেন, আপনি এই জাতীয় বিস্ফোরণ ব্যবহার করতে পারেন

$resultArray = explode("\t", $inputString);

দ্রষ্টব্য: আপনার অবশ্যই ডাবল উদ্ধৃতি ব্যবহার করা উচিত, একক নয়।


আমার জন্য পরিশ্রম করা এবং নিয়মিত অভিব্যক্তির অন্ধকার শক্তি ব্যবহার করার চেয়ে অল্প সহজ।
ডেভিড 'টাক আদা'

8
তবে তিনি "স্পেস বা ট্যাব" চেয়েছিলেন এবং এটি কেবল ট্যাবগুলির জন্যই বিস্ফোরিত হয়।
জেফ

2
আমি এখানে বিস্ফোরিত স্থানগুলির সন্ধান করতে এসেছি। আমি এই সম্পর্কে গভীর ভিতরে খারাপ লাগছে।
সার্জিও এ



3

সম্পূর্ণ প্রস্থ স্থান যেমন অ্যাকাউন্ট হিসাবে

full width

আপনি বেনস এর উত্তর প্রসারিত করতে পারেন:

$searchValues = preg_split("@[\s+ ]@u", $searchString);

সূত্র:

(কোনও মন্তব্য পোস্ট করার মতো যথেষ্ট খ্যাতি আমার নেই, তাই আমি উত্তর হিসাবে এটি লিখেছি))


0

অন্যান্য ভাবেন (বেন জেমস) দ্বারা সরবরাহিত উত্তরগুলি বেশ ভাল এবং আমি সেগুলি ব্যবহার করেছি। ব্যবহারকারীর 889030 পয়েন্ট হিসাবে, শেষ অ্যারে উপাদান খালি থাকতে পারে। আসলে, প্রথম এবং শেষ অ্যারে উপাদানগুলি খালি থাকতে পারে। নীচের কোডটি উভয় সমস্যার সমাধান করে।

# Split an input string into an array of substrings using any set
# whitespace characters
function explode_whitespace($str) {  
  # Split the input string into an array
  $parts = preg_split('/\s+/', $str);
  # Get the size of the array of substrings
  $sizeParts = sizeof($parts);
  # Check if the last element of the array is a zero-length string
  if ($sizeParts > 0) {
    $lastPart = $parts[$sizeParts-1];
    if ($lastPart == '') {
      array_pop($parts);
      $sizeParts--;
    }
    # Check if the first element of the array is a zero-length string
    if ($sizeParts > 0) {
      $firstPart = $parts[0];
      if ($firstPart == '') 
        array_shift($parts); 
    }
  }
  return $parts;   
}

-2
Explode string by one or more spaces or tabs in php example as follow: 

   <?php 
       $str = "test1 test2   test3        test4"; 
       $result = preg_split('/[\s]+/', $str);
       var_dump($result);  
    ?>

   /** To seperate by spaces alone: **/
    <?php
      $string = "p q r s t";   
      $res = preg_split('/ +/', $string);
      var_dump($res);
    ?>


-5

@ ওপো কোনও ব্যাপার নয়, আপনি কেবল বিস্ফোরণ সহ একটি স্পেসে বিভক্ত করতে পারেন। যতক্ষণ না আপনি এই মানগুলি ব্যবহার করতে চান, বিস্ফোরিত মানগুলিতে পুনরাবৃত্তি করুন এবং ফাঁকা ফেলে দিন।

$str = "A      B      C      D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){    
    if ( trim($b) ) {
     print "using $b\n";
    }
}

4
ট্যাব-সীমাবদ্ধ মানগুলির কী হবে?
dotancohen

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