[英]How to use the PowerShell match operator
版本:PowerShell 2.0
我有以下內容:
$pattern = '^.\d_\d\d\d\d\d\d\d\d_\d\d\d\d\d\d\d\d\d\d\d\d\d\d.pdf$'
$filename = '123456_12345678_12345678901234.pdf'
$filename -match $pattern
我希望^和$字符開始並結束字符串。 因為我正在使用外卡'。' 在開始時,我真的只關心$終結者。 這些字符似乎不像我在PowerShell中所期望的那樣工作,因為上面的代碼返回FALSE。
$ goodname將返回什么模式,但$ badname返回false。 名稱第一段中的位數未知。
$goodname = '123456_12345678_12345678901234.pdf'
$badname = '123456_12345678_12345678901234.pdf.hold'
它返回false,因為filename
與pattern
不匹配。
一個更好的正則表達式是:
$pattern = '^\d+_\d{8}_\d{14}\.pdf$'
$filename = '123456_12345678_12345678901234.pdf'
$filename -match '\d{6}_\d{8}_\d{14}\.pdf.*'
^
在字符串的開頭 \\d+
匹配至少一位數(如你所說的數字位數未知) _
匹配下划線 \\d{8}
匹配8位數字 _
匹配下划線 \\d{14}
匹配14位數 \\.
匹配一個點.
pdf
匹配“pdf” $
並且如果你現在不在字符串的末尾則不匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.