2013-05-11 3 views
2

일부 설정 파일을 구문 분석하고 일치하는 항목을 찾아야합니다. 나는이 문제를 단순화했다. PowerShell이 ​​이스케이프 된 경우에도 백 슬래시와 일치하지 않는 이유는 무엇입니까? 아래 코드에서 백 스페이스를 제거하면 작동합니다. $ A의Powershell Match로 일치하는 변수

찾기 $ B는 : 당신이 문자열 자체를 탈출하고 있기 때문에

$a="lorum [\test] ipsum" 
$b="[\test]" 

([regex]::Escape($a)) -match ([regex]::Escape($b)) 

답변

4

이 있습니다. -match 이전의 부분은 일반 문자열이어야하며, 뒤에 부분은 정규식 패턴이어야합니다. 귀하의 명령이 실제로하는 일은이 문자열을 비교하는 것입니다 (일반 문자열로 생각하십시오).

"lorum \[\\test\] ipsum" contains "[\test]" 

이는 사실이 아닙니다. 문자열 $a을 이스케이프 패턴 $b과 일치 시키십시오.

$a="lorum [\test] ipsum" 
$b="[\test]" 

$a -match ([regex]::Escape($b)) 
+0

완벽한; 도와 주셔서 감사합니다. –