코드를 사용하여 분할 한 문자열이 있습니다 $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
특정 항목이 필요할 때 배열 인덱스를 사용하여 도달하십시오. 인덱스는 0부터 시작합니다. 그렇게
$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은 정규식 (정규식)을 (첫 번째) RHS 피연산자로 사용하는 반면 [string]형식의 .Split()메서드는 리터럴 문자 / 문자 배열 / 및-.NET Core에서 -리터럴 문자열 에서도 작동 합니다 . 또한 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을 .