3
我要替換文件夾中的每個腳本文件一些文本,我想用這個PS代碼:PowerShell的正則表達式組更換
$pattern = '(FROM [a-zA-Z0-9_.]{1,100})(?<replacement_place>[a-zA-Z0-9_.]{1,7})'
Get-ChildItem -Path 'D:\Scripts' -Recurse -Include *.sql | ForEach-Object { (Get-Content $_.fullname) -replace $pattern, 'replace text' | Set-Content $_.fullname }
但我不知道如何保持表達的第一部分,只需更換第二個。任何想法我怎麼能做到這一點?謝謝。
謝謝你,那正是我需要。在這種情況下,正則表達式的正確性並不重要,我只需要學習一種方法。 – hmnzr 2012-08-03 12:54:44
謝謝,這在過去很有幫助。我現在遇到了麻煩,現在引用另一個變量,第一個捕獲和變量之間沒有空格,像這樣:'Foreach-Object {$ _ -replace $ pattern,'\'$ 1 $ version \'$ 3「}''。我想輸出' 1.1.35 VersionPrefix>',但獲得'$ 11.1.35 VersionPrefix>',顯然解析器沒有意識到我想在那裏捕獲。有沒有解決的辦法?如果我在捕獲和變量之間放置一個空間,但是之後我會有一個額外的空間,以後再打碎。 –
Peter
2017-05-15 08:42:54
@Peter你有沒有找到解決這個問題的方法?具有完全相同的問題 – user3700562 2018-01-24 13:18:41