programing

.replace 와 -replace in powershell의 차이점은 무엇입니까?

mbctv 2023. 9. 3. 21:46
반응형

.replace 와 -replace in powershell의 차이점은 무엇입니까?

.replace와 -replace는 완전히 동일하다는 인상을 받았지만, .replace로 수행할 수 있는 일부 RegEx 작업을 수행할 수 없다는 것을 알게 되었습니다.누가 제가 빠진 것을 지적해 주시겠습니까?

Broken Regex replace:
$a=$a.Replace('.:\\LOGROOT\\', "\\$env:computername\logroot\")


Working Regex replace:
$a=$a -Replace('.:\\LOGROOT\\', "\\$env:computername\logroot\")

ps: 다음 URL은 제가 잘 모르는 .replace 옵션이 있다고 생각하게 하지만 사용 방법이나 이러한 옵션에 대한 도움말에 액세스하는 방법에 대한 추가 정보를 찾을 수 없는 것 같습니다.http://www.computerperformance.co.uk/powershell/powershell_regex.htm Regex.대체(문자열, 문자열, 문자열, 정규식 옵션) 및 다음도 포함합니다.정규식.대체 메서드(String, String, MatchEvaluator, RegexOptions)입니다.

감사해요.

@Keith Hill의 대답은 다음과 같은 차이점을 설명합니다.Replace방법과 그-replace연산자, 동일한 결과를 볼 수 없는 이유를 설명하기 위해, 그것은 당신이 사용하고 있기 때문입니다.String.Replace문자열을 교체하는 방법 및-replace연산자는 regex replace를 사용합니다.Regex를 사용할 수 있습니다. 목적으로 메소드를 교체하면 동일한 효과가 나타납니다.

[regex]::replace($a,'.:\\LOGROOT\\', "\\$env:computername\logroot\")

요약하면,-replace연산자가 다음과 같습니다.Regex.Replace(위에 연결된 특정 과부하), 그러나 일반적으로Replace()인스턴스 또는 정적 메서드가 될 수 있습니다. 이 메서드는 와 완전히 다른 작업을 수행할 수 있습니다.-replace

그들은 같은 것이 아닙니다..Replace는 시스템에서 .NET 메서드입니다.문자열 또는 인스턴스 메서드 이름이 지정된 다른 형식Replace.-replace는 정규식을 사용하는 PowerShell 연산자입니다. 실행man about_operators자세한 정보를 보려면-replace교환입니다.

언급URL : https://stackoverflow.com/questions/10184156/whats-the-difference-between-replace-and-replace-in-powershell

반응형