簡體   English   中英

如何使用PowerShell匹配運算符

[英]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,因為filenamepattern不匹配。

一個更好的正則表達式是:

$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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM