PowerShell中使用正則表達(dá)式匹配字符串實例
本文介紹PowerShell中使用match操作符,配合正則表達(dá)式從字符串提取指定的內(nèi)容。
使用正則表達(dá)式,除了可以確定字符串是否匹配某一個正則表達(dá)式規(guī)則之外,另一個很重要的應(yīng)用就是從字符串中提取出指定的內(nèi)容。什么意思呢,舉個例子,一個字符串中有出現(xiàn)連續(xù)的三個數(shù)字,我們想很方便的把這三個數(shù)字提取出來,那么就可以用正則表達(dá)式。
PS C:\Users\Hong> $str="abc123abc"
PS C:\Users\Hong> $pattern="(\d{3})"
PS C:\Users\Hong> $str -match $pattern
True
PS C:\Users\Hong> $matches
Name Value
---- -----
1 123
0 123
在上面的示例中,我們指定了一個字符串$str="abc123abc",這個字符串中包含了123這個連續(xù)三個數(shù)字。我們又定義了一個$pattern變量,這是一個正則表達(dá)式。我們直接運行match時,輸出為true,表示$str字符串中有連續(xù)的三個數(shù)字。
當(dāng)我們再運行$matches時,輸出了123,這就是匹配到的值。$matches這個變量不是我們自定義的,它是一個系統(tǒng)變量。我們在在運行match操作符時,這個系統(tǒng)變量自動獲取了值。
再來說一下為什么$matches有兩個值呢,我們把上面的例子修改一下。大家看看區(qū)別。
PS C:\Users\Hong> $str="abc123abc"
PS C:\Users\Hong> $pattern="abc(\d{3})"
PS C:\Users\Hong> $str -match $pattern
True
PS C:\Users\Hong> $matches
Name Value
---- -----
1 123
0 abc123
我們把$pattern變量的值作了修改,在前面加了一個abc。這個在$matches[0]的值就變成了abc123。這說明,$matches[0]表示的是與正則表達(dá)式相匹配的內(nèi)容。而$matches[1]及之后的內(nèi)容,則是對應(yīng)著正則表達(dá)式的一個個小括號里面匹配到的內(nèi)容。示例中我們只有一個小括號,那只有$matches[1]。試想一下,如果正則表達(dá)式有多小括號,則會有多個$matches元素值。
關(guān)于PowerShell使用match提取字符串中的指定內(nèi)容,本文就介紹這么多,希望對您有所幫助,謝謝!
相關(guān)文章
使用PowerShell獲取Trustedinstaller權(quán)限的問題
這篇文章主要介紹了使用PowerShell獲取Trustedinstaller權(quán)限,獲取到?Trustedinstaller?權(quán)限,就可以通過一些命令來修改系統(tǒng)文件了,本文給大家詳細(xì)講解,需要的朋友可以參考下2023-01-01PowerShell中把相對路徑轉(zhuǎn)換為絕對路徑的2個方法
這篇文章主要介紹了PowerShell中把相對路徑轉(zhuǎn)換為絕對路徑的2個方法,并對他的區(qū)別做了講解,需要的朋友可以參考下2014-08-08PowerShell ISE中代碼轉(zhuǎn)換大小寫的技巧
這篇文章主要介紹了PowerShell ISE中代碼轉(zhuǎn)換大小寫的技巧,本文使用ISE內(nèi)置快捷鍵解決這個問題,需要的朋友可以參考下2015-03-03Powershell小技巧之使用WMI測試服務(wù)響應(yīng)
這篇文章主要介紹了Powershell小技巧之使用WMI測試服務(wù)響應(yīng),需要的朋友可以參考下2014-09-09PowerShell因為在此系統(tǒng)中禁止執(zhí)行腳本的解決方法
今天看到國外的一篇文章可以在cmd中運行95版本的ps1格式的批處理,但經(jīng)過測試默認(rèn)情況下powershell支不支持執(zhí)行腳本需要執(zhí)行如下操作2016-10-10Powershell小技巧之非相同域或信任域也能遠(yuǎn)程
這篇文章主要介紹了使用Powershell在非相同域或信任域也能遠(yuǎn)程的方法以及如何設(shè)置powershell遠(yuǎn)程處理的方法,需要的朋友可以參考下2014-10-10