PowerShell中使用正則表達式匹配字符串實例
本文介紹PowerShell中使用match操作符,配合正則表達式從字符串提取指定的內(nèi)容。
使用正則表達式,除了可以確定字符串是否匹配某一個正則表達式規(guī)則之外,另一個很重要的應(yīng)用就是從字符串中提取出指定的內(nèi)容。什么意思呢,舉個例子,一個字符串中有出現(xiàn)連續(xù)的三個數(shù)字,我們想很方便的把這三個數(shù)字提取出來,那么就可以用正則表達式。
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變量,這是一個正則表達式。我們直接運行match時,輸出為true,表示$str字符串中有連續(xù)的三個數(shù)字。
當我們再運行$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]表示的是與正則表達式相匹配的內(nèi)容。而$matches[1]及之后的內(nèi)容,則是對應(yīng)著正則表達式的一個個小括號里面匹配到的內(nèi)容。示例中我們只有一個小括號,那只有$matches[1]。試想一下,如果正則表達式有多小括號,則會有多個$matches元素值。
關(guān)于PowerShell使用match提取字符串中的指定內(nèi)容,本文就介紹這么多,希望對您有所幫助,謝謝!
相關(guān)文章
PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧
這篇文章主要介紹了PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧,需要的朋友可以參考下2014-08-08
Windows Powershell 進行數(shù)學運算
在Windows PowerShell中, 使用數(shù)學運算符來進行數(shù)學運算,數(shù)學運算符允許你在命令參數(shù)中計算數(shù)值. 你可以使用一個或者多個運算符進行加減乘除法, 也可以返回除法的余數(shù)(模). 包含這些計算的參數(shù), 將計算結(jié)果作為參數(shù)值. 命令就像處理其他類型參數(shù)一樣, 來處理參數(shù)值.2014-08-08
PowerShell小技巧之獲取Windows系統(tǒng)密碼Hash
這篇文章主要介紹了使用PowerShell獲取Windows系統(tǒng)密碼Hash的小技巧,非常的實用,需要的朋友可以參考下2014-10-10
Windows Powershell創(chuàng)建對象
.Net類型中的方法功能很強大??梢酝ㄟ^類型的構(gòu)造函數(shù)創(chuàng)建新的對象,也可以將已存在的對象轉(zhuǎn)換成指定的類型。2014-10-10

