PowerShell 및 -contains 연산자
다음의 스니펫을 검토해 주세요.
"12-18" -Contains "-"
이렇게 평가하면true
하지만 그렇지 않다.이것으로 평가됩니다.false
대신.왜 이런 일이 일어나는지 모르겠지만, 실제로 일어나고 있어요.
이를 피하기 위해 대신 다음을 사용할 수 있습니다.
"12-18".Contains("-")
이제 표현은 참으로 평가됩니다.
첫 번째 코드 스니펫은 왜 이렇게 동작합니까?뭐 특별한 거라도 있나요?-
그것은 와 잘 어울리지 않는다-Contains
문서에는 이에 대한 언급은 없습니다.
그-Contains
연산자는 하위 문자열 비교를 수행하지 않으며 일치 항목이 완전한 문자열이어야 하며 수집 검색에 사용됩니다.
링크한 문서에서 다음 항목을 참조하십시오.
- 내용 설명:격납 연산자.기준 값 집합이 단일 검정 값을 포함하는지 여부를 나타냅니다.
제공된 예제에서는 문자열 항목을 하나만 포함하는 컬렉션으로 작업하고 있습니다.
링크된 설명서를 읽으면 이 동작을 보여주는 예를 볼 수 있습니다.
예:
PS C:\> "abc", "def" -Contains "def"
True
PS C:\> "Windows", "PowerShell" -Contains "Shell"
False #Not an exact match
당신이 원하는 건 교환원일 거예요
"12-18" -Match "-"
이 값은 반환됩니다.True
.
중요:코멘트 및 링크된 문서에서 지적된 바와 같이,-Match
연산자는 정규 표현을 사용하여 텍스트 조회를 수행합니다.
-Contains
실제로는 수집 오퍼레이터입니다.컬렉션에 개체가 포함되어 있으면 true입니다.그것은 현에만 국한된 것이 아니다.
-match
정규 표현식 문자열 매처이며 캡처에 사용할 자동 변수를 설정합니다.
-like
,-ilike
SQL과 같은 matcher입니다.
사용할 수 있습니다.like
:
"12-18" -like "*-*"
또는split
위해서contains
:
"12-18" -split "" -contains "-"
like
가장 좋거나 적어도 쉬울 수 있습니다.match
는 regex 비교에 사용됩니다.
참조: 비교 연산자에 대하여
언급URL : https://stackoverflow.com/questions/18877580/powershell-and-the-contains-operator
'programing' 카테고리의 다른 글
CSS에서 셀패딩과 셀스페이스를 설정하시겠습니까? (0) | 2023.04.08 |
---|---|
HTML5에 플로트 입력 타입이 있나요? (0) | 2023.04.08 |
데이터 손실 없이 SQL Server 데이터베이스의 열 데이터 유형을 변경하는 방법 (0) | 2023.04.08 |
명령 프롬프트에서 PowerShell 스크립트로 부울 값을 전달하는 방법 (0) | 2023.04.08 |
HTML Agility 팩 사용 방법 (0) | 2023.04.08 |