dir中的日期的正则表达式匹配不产生$ 1,$ 2,$ 3结果

时间:2019-01-16 13:26:37

标签: regex powershell

我正在尝试使用带有powershell的正则表达式从目录名称中提取年,月和日。出于某种原因,我可以告诉我使用-match获得匹配,但是当我尝试使用[regex] :: Matches获得月份,日期和年份时,我无法获得匹配。

      $temp = "toLocRobo_2019-01-30"
      $regex = [regex]::Matches($temp,'([0-9]+)-([0-9]+)-([0-9]+)')
      write-output $1 $2 $3  #$1, $2, and $3 are empty
      if($temp -match '([0-9]+)-([0-9]+)-([0-9]+)') { 
         write-output $1 $2 $3 #cursor gets to here so it matches, but $1, $2, and $3 are empty
      }

我一直在查看powershell matches datestringpowershell regex,但这有点不同,我不确定为什么它不起作用。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

执行替换操作时,将使用DECLARE @query NVARCHAR(1000) ='' SET @query = 'Select * from a where something = 123 and (' + (SELECT clause FROM [table] WHERE id = 1) + ')' EXECUTE @query 等。 为了简单地匹配日期,我将执行以下操作:

$1

答案 1 :(得分:0)

$ 1,$ 2和$ 3的变量在哪里填充?

您的正则表达式可以正常工作,请参见以下代码:

$temp = "toLocRobo_2019-01-30"
$regex = [regex]::Matches($temp, '([0-9]+)-([0-9]+)-([0-9]+)')
$regex.groups[0].value
$regex.groups[1].value
$regex.groups[2].value
$regex.groups[3].value