मेरे पास एक स्ट्रिंग है, जिसे मैंने कोड का उपयोग करके विभाजित किया है $CreateDT.Split(" ")
। मैं अब अलग-अलग तरीकों से दो अलग-अलग तारों में हेरफेर करना चाहता हूं। मैं इन्हें दो चर में कैसे अलग कर सकता हूं?
जवाबों:
ऐशे ही?
$string = 'FirstPart SecondPart'
$a,$b = $string.split(' ')
$a
$b
"FirstPart SecondPart ThirdPart"
और केवल दो चाहते हैं, तो आप उपयोग कर सकते हैं$a,$b = $string.split(' ')[0,1]
-split
ऑपरेटर के साथ एक सरणी बनाई जाती है । इस तरह,
$myString="Four score and seven years ago"
$arr = $myString -split ' '
$arr # Print output
Four
score
and
seven
years
ago
जब आपको एक निश्चित आइटम की आवश्यकता होती है, तो इसे तक पहुंचने के लिए ऐरे इंडेक्स का उपयोग करें। मन जो सूचकांक शून्य से शुरू होता है। इस तरह,
$arr[2] # 3rd element
and
$arr[4] # 5th element
years
$arr = @($myString.split(' '))
$first_word = ("one-two-three" -split '-')[0]
.Split()
हमेशा एक सरणी देता है, इसलिए इसकी कोई आवश्यकता नहीं है @(...)
: $arr = $myString.split(' ')
लेकिन ध्यान दें कि अधिक PowerShell-idiomatic समाधान, $arr = $myString -split ' '
पहले से ही उत्तर का हिस्सा है। हालाँकि, ध्यान दें कि -split
यह एक रेक्सक्स लेता है और केस-असंवेदनशील ( -csplit
केस-सेंसिटिव बंटवारे के लिए उपयोग ) है।
दो तकनीकों के बीच निम्नलिखित अंतर को नोट करना महत्वपूर्ण है:
$Str="This is the<BR />source string<BR />ALL RIGHT"
$Str.Split("<BR />")
This
is
the
(multiple blank lines)
source
string
(multiple blank lines)
ALL
IGHT
$Str -Split("<BR />")
This is the
source string
ALL RIGHT
इससे आप देख सकते हैं कि string.split()
विधि :
जबकि -split
ऑपरेटर :
-split
एक लेता है regex जबकि के रूप में अपनी (प्रथम) आरएचएस (नियमित अभिव्यक्ति) संकार्य, [string]
इस किस्म की .Split()
विधि एक पर चल रही शाब्दिक पात्रों के चरित्र / सरणी / और - .NET में कोर भी एक शाब्दिक - स्ट्रिंग । यह भी ध्यान दें कि PowerShell में उचित सिंटैक्स है $Str -split '<BR />'
; जबकि छद्म विधि वाक्यविन्यास इस मामले में काम $Str -Split("<BR />")
करने के लिए होता है , इसे टाला जाना चाहिए।
इसे इस्तेमाल करे:
$Object = 'FirstPart SecondPart' | ConvertFrom-String -PropertyNames Val1, Val2
$Object.Val1
$Object.Val2
ConvertFrom-String
अप्रचलित है और इसे टाला जाना चाहिए (यह हमेशा एक प्रयोगात्मक अनुभव था और तथ्य यह है कि इसे PowerShell Core में शामिल नहीं किया गया है, जहां भविष्य के विकास के प्रयास केंद्रित हैं, यह इंगित करता है कि यह यहां रहने के लिए नहीं है)। अतिरिक्त हेरफेर की आवश्यकता के लिए: एक विनाशकारी असाइनमेंट करेगा:$val1, $val2 = 'FirstPart SecondPart' -split ' '
ConvertFrom-String
के निहित समस्याओं कारण पर्याप्त यह से बचने के लिए कर रहे हैं। यह विशेष रूप से टेम्पलेट आधारित पार्स पर लागू होता है, लेकिन फिर भी सीमांकक आधारित पार्स त्रुटिपूर्ण है, के कारण प्रकार निष्कर्ष है कि सदा ही लागू किया - देख stackoverflow.com/a/50166580/45375 ।