एक या एक से अधिक रिक्त स्थान या टैब द्वारा धमाका


141

मैं एक स्ट्रिंग को एक या अधिक रिक्त स्थान या टैब से कैसे विस्फोट कर सकता हूं?

उदाहरण:

A      B      C      D

मैं इसे एक सरणी बनाना चाहता हूं।


शून्य या अधिक रिक्त स्थान का तात्पर्य है कि या तो प्रत्येक तत्व में अधिकतम एक वर्ण होगा, या कि आपके पास अनंत रूप से कई खाली तत्व होंगे। क्या आप वाकई यह चाहते हैं कि आप क्या चाहते हैं?
21

हाँ, कि शायद "एक या अधिक रिक्त स्थान" होना चाहिए।
माइकल मायर्स

जवाबों:


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

5
अंतिम भाग $ तत्व रिक्त होगा .. इसलिए इसे दूर करने के लिए array_pop ($ parts);
user889030

1
@Lucsan का उत्तर सबसे अच्छा उत्तर होना चाहिए ( stackoverflow.com/a/38481324/1407491 )
नबी

6
अंतिम भाग जो खाली हो सकता है को दूर करने के बजाय, एक का उपयोग कर सकते हैं:$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
coeing

49

टैब द्वारा अलग करने के लिए:

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

रिक्त स्थान / टैब / न्यूलाइन द्वारा अलग करने के लिए:

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

अकेले स्थानों द्वारा अलग करने के लिए:

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



19

लेखक ने विस्फोट के लिए कहा, आप इस तरह से विस्फोट का उपयोग कर सकते हैं

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

नोट: आपको दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए, एकल नहीं।


मेरे लिए काम किया और नियमित अभिव्यक्ति की अंधेरे शक्ति का उपयोग करने की तुलना में एक बालक सरल है।
डेविड 'गंजा अदरक'

8
लेकिन उसने "रिक्त स्थान या टैब" के लिए कहा और यह केवल टैब के लिए विस्फोट करता है।
जेफ

2
मैं यहां भी रिक्त स्थान की तलाश में आया था। मुझे इस बात का गहरा दुख है।
सर्जियो ए।

10

मुझे लगता है कि आप चाहते हैं preg_split:

$input = "A  B C   D";
$words = preg_split('/\s+/', $input);
var_dump($words);


3

पूर्ण चौड़ाई वाले स्थान जैसे खाते के लिए

full width

आप इसका उत्तर देने के लिए Bens का विस्तार कर सकते हैं:

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

सूत्रों का कहना है:

(मेरे पास टिप्पणी पोस्ट करने के लिए पर्याप्त प्रतिष्ठा नहीं है, इसलिए मुझे यह एक उत्तर के रूप में लिखा गया है।)


0

अन्य लोगों (बेन जेम्स) द्वारा प्रदान किए गए उत्तर काफी अच्छे हैं और मैंने उनका उपयोग किया है। User889030 के अनुसार, अंतिम सरणी तत्व खाली हो सकता है। दरअसल, पहला और आखिरी एरे तत्व खाली हो सकते हैं। नीचे दिया गया कोड दोनों मुद्दों को संबोधित करता है।

# 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
टैब-सीमांकित मानों के बारे में क्या?
डॉटान्चेन

टैब-सीमांकित मानों में विस्फोट नहीं होगा, इसलिए यूजी।
नेकोजिरु सूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.