本文介紹在PowerShell中當使用正則表達式時遇到多行字符串,如何進行跨行匹配的問題。
PowerShell中使用正則表達式來匹配搜索字符串是非常常用的一個操作。但如果遇到一個字符串有多行時,常規的正則表達式,無法正常工作。
不信請看:
復制代碼 代碼如下:
PS C:\Users\spaybow> "1111`n2222" -match "^1.*2$"
False
PS C:\Users\spaybow> "1111`n2222" -match "1.*2"
False
上面兩個返回值都是False,這很讓人想不通。如果去掉“1111`n2222”中的“`n”則上面兩句都將返回True了。
復制代碼 代碼如下:
PS C:\Users\spaybow> "11112222" -match "1.*2"
True
PS C:\Users\spaybow> "11112222" -match "^1.*2$"
True
那么,怎么樣處理這種需要跨行的正則表達式匹配呢?答案是使用(?S)選項,在正則表達式之前加上“(?s)”,可以讓正則表達式跨行匹配。
復制代碼 代碼如下:
PS C:\Users\spaybow> "1111`n2222" -match "(?s)^1.*2$"
True
PS C:\Users\spaybow> "1111`n2222" -match "(?s)1.*2"
True
關于PowerShell中正則表達式跨行匹配,本文就介紹這么多,希望對您有所幫助,謝謝!
您可能感興趣的文章:- linux shell 正則表達式(BREs,EREs,PREs)差異比較
- PowerShell中使用正則表達式篩選數組實例
- PowerShell中使用正則表達式匹配字符串實例
- PowerShell函數使用正則表達式驗證輸入參數實例
- PowerShell使用正則表達式查找字符串實例
- PowerShell中正則表達式使用例子
- Powershell學習筆記--使用正則表達式查找文件
- Shell正則表達式之grep、sed、awk實操筆記
- Shell正則表達式驗證IP地址
- Shell腳本中通過正則表達式匹配IP地址
- Shell正則表達式學習筆記