답변:
-Contains
연산자는 비교를 하위 문자열하지 않고 경기는 완전한 문자열에 있어야하며 컬렉션을 검색하는 데 사용됩니다.
연결 한 설명서에서 :
-설명 포함 : 격리 연산자. 참조 값 모음에 단일 테스트 값이 포함되어 있는지 여부를 알려줍니다.
이 예에서는 문자열 항목이 하나만 포함 된 컬렉션으로 작업하고 있다고 설명했습니다.
링크 한 문서를 읽으면이 동작을 보여주는 예가 표시됩니다.
예 :
PS C:\> "abc", "def" -Contains "def"
True
PS C:\> "Windows", "PowerShell" -Contains "Shell"
False #Not an exact match
나는 당신이 원하는 것이 -Match
연산자 라고 생각합니다 .
"12-18" -Match "-"
어느 것이 반환합니다 True
.
중요 사항 : 주석 및 링크 된 문서 에서 지적했듯이 -Match
연산자는 정규식 을 사용하여 텍스트 일치를 수행합니다.
Contains
powershell 연산자와 .Contains()
.NET String
메서드 의 차이점을 분명히해야한다고 생각합니다 .
-Match
정규 표현식을 사용합니다. 이는 문자열 매개 변수가 정규 문자열이 아니라 정규식임을 의미합니다. 예를 들어 '.'인 정규 표현식 "hello" -Match "."
이므로 true를 반환합니다 "."
. 모든 문자와 일치합니다. 문자열에 전체 정지가 포함되어 있는지 확인하려면 : "hello" -Match "\."
(거짓을 반환합니다)
-Contains
실제로 수집 연산자입니다. 컬렉션에 개체가 포함되어 있으면 true입니다. 문자열에만 국한되지 않습니다.
-match
및-imatch
캡처에 사용할 정규 표현식 문자열 정합 기, 및 세트 자동 변수입니다.
-like
, -ilike
정합 기 SQL-같다.
당신은 사용할 수 있습니다 like
:
"12-18" -like "*-*"
또는 split
를위한 contains
:
"12-18" -split "" -contains "-"
like
가장 좋거나 가장 쉽습니다.match
정규식 비교에 사용됩니다.
"12-18".Contains("-")