我有一個正則表達式,當我使用各種在線正則表達式測試網站時,返回正確的結果。但是,當我在PowerShell腳本中使用正則表達式時,它只返回一行而不是多行。我希望PowerShell的專家能告訴我我做錯了什麼。我正在使用PowerShell v1。Powershell正則表達式拒絕在多行上運行
這是我的正則表達式: https://regex101.com/r/eA5jB2/3
這是我的PowerShell腳本: -
#Read the file
$FilePath = "testfile.txt"
$regex = '(?msi)^0[12][VM](?:[^\n]|\n(?!0[12][VM]|50|90))+'
get-content $FilePath | select-string -pattern $regex
回報是單行
01Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01 01 01
,而不是
01Mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 01 01 01
01=0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
01=5xxxxxxxxxxxxxxxxxxxxxxxxxxx
這工作正常!當我使用「$ text = get-content $ FileName | out-string」來讀取我的文件時,它就起作用了。問題解決了。 – user3046742