我有一個長文本檔案,如下所示:
("B3501870","U00357"),
INSERT INTO [dbo].[Bnumbers] VALUES
("B3501871","U11019"),
("B3501899","U28503"),
我希望 INSERT 之前的每一行不是以 結尾,而是以 ; 結尾。反而。所以最終結果應該是這樣的:
("B3613522","U00357");
INSERT INTO [dbo].[Bnumbers] VALUES
("B3615871","U11019"),
("B3621899","U28503"),
我嘗試了多種方法來實作這一點,但它似乎不適用于多行。我試過的一種方法是這樣的:
(Get-Content -path C:\temp\bnr\list.sql -Raw) -replace ",\nINSERT", ";\nINSERT" | Add-Content -Path C:\temp\bnr\test.sql
試過
[io.file]::ReadAllText("C:\temp\bnr\list.sql")
希望它將檔案視為一個巨大的字串,但無濟于事。
有什么方法可以告訴 PS 找到逗號 換行符 INSERT 并對其進行更改?
,\nINSERT
適用于帶有正則運算式但不適用于 PS 的 Sublime 文本。
uj5u.com熱心網友回復:
您可以使用
(Get-Content -path C:\temp\bnr\list.sql -Raw) -replace ',(\r?\nINSERT)', ';$1'
或者,
(Get-Content -path C:\temp\bnr\list.sql -Raw) -replace ',(?=\r?\nINSERT)', ';'
請參閱正則運算式演示。
正,(?=\r?\nINSERT)則運算式匹配一個逗號,緊接著是一個可選的 CR 字符,然后是 LF 字符,然后是INSERT文本。該變體將 CRLF/LF 結尾 字串,(\r?\nINSERT)捕獲到組 1 中,因此替換模式中的反向參考將此文本放回結果中。INSERT$1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535559.html
標籤:正则表达式电源外壳
下一篇:php中的正則運算式搜索
