문자열에서 텍스트를 제거하는 PowerShell
특정 문자 뒤에 있는 문자열의 모든 텍스트를 제거하는 가장 좋은 방법은 무엇입니까?내 경우 "=" 그리고 내 경우 다른 캐릭터 뒤에 a.,
하지만 그 텍스트를 사이에 두고 있나요?
샘플입력
= 이걸 간직하고,
이를 수행하는 또 다른 방법은 연산자 교체입니다.
$TestString = "test=keep this, but not this."
$NewString = $TestString -replace ".*=" -replace ",.*"
.*=
등호를 포함한 최대 문자 수를 의미합니다.
,.*
쉼표 뒤에 임의의 수의 문자가 오는 것을 의미합니다.
기본적으로 문자열의 두 부분을 삭제하기 때문에 해당 부분을 대체할 빈 문자열을 지정할 필요가 없습니다.여러 개의 대체를 사용할 수 있지만 순서는 왼쪽에서 오른쪽으로 정렬됩니다.
$a="some text =keep this,but not this"
$a.split('=')[1].split(',')[0]
돌아온다
keep this
이렇게 하면 원하는 작업을 수행할 수 있습니다.
C:\PS> if ('=keep this,' -match '=([^,]*)') { $matches[1] }
keep this
이것은 정말 오래된 것이지만, 저는 이것을 우연히 발견할 수 있는 다른 사람들을 위해 저의 약간의 변형을 추가하고 싶었습니다.정규 표현은 강력한 것입니다.
등호와 쉼표 사이에 있는 텍스트를 유지하려면:
-replace "^.*?=(.*?),.*?$",'$1'
이 정규식은 줄의 시작 부분에서 시작하여 첫 번째 등호까지 모든 문자를 지우고 다음 쉼표까지 모든 문자를 캡처한 다음 줄의 끝 부분까지 모든 문자를 지웁니다.그런 다음 전체 줄을 캡처 그룹(괄호 안에 있는 모든 항목)으로 바꿉니다.하나 이상의 등호와 하나 이상의 쉼표를 포함하는 모든 행과 일치합니다.이것은 Trix의 제안과 유사하지만, 그 제안과 달리 동일한 기호나 쉼표만 포함하는 선과 일치하지 않습니다. 두 가지를 순서대로 모두 포함해야 합니다.
나는 출력을 분석하기 위해 위의 @benjamin-hubbard의 답변을 참조했습니다.dnscmd
IP와 호스트 이름의 PHP "사전"/키-값 쌍을 생성합니다.여러 개를 묶었습니다.-replace
텍스트를 아무것도 없는 상태로 대체하거나 PHP 파일의 데이터를 포맷하기 위해 함께 인수를 지정합니다.
$DnsDataClean = $DnsData `
-match "^[a-zA-Z0-9].+\sA\s.+" `
-replace "172\.30\.","`$P." `
-replace "\[.*\] " `
-replace "\s[0-9]+\sA\s","`t"
$DnsDataTable = ( $DnsDataClean | `
ForEach-Object {
$HostName = ($_ -split "\t")[0] ;
$IpAddress = ($_ -split "\t")[1] ;
"`t`"$IpAddress`"`t=>`t'$HostName', `n" ;
} | sort ) + "`t`"`$P.255.255`"`t=>`t'None'"
"<?php
`$P = '10.213';
`$IpHostArr = [`n`n$DnsDataTable`n];
?>" | Out-File -Encoding ASCII -FilePath IpHostLookups.php
Get-Content IpHostLookups.php
언급URL : https://stackoverflow.com/questions/19168475/powershell-to-remove-text-from-a-string
'programing' 카테고리의 다른 글
php - 날짜 형식으로 + 7일 추가 mm dd, YYYY (0) | 2023.08.26 |
---|---|
데이터가 존재하거나 존재하지 않을 수 있는 경우 표 결합 (0) | 2023.08.26 |
ASP.NET: ModalPopupExtender는 버튼 클릭 이벤트가 발생하지 않도록 방지합니다. (0) | 2023.08.26 |
텍스트별 링크 선택(정확히 일치) (0) | 2023.08.26 |
데이터 특성 값을 업데이트할 수 없습니다. (0) | 2023.08.26 |