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