【发布时间】:2018-07-05 10:52:38
【问题描述】:
目标字符串:
8AM - 10AM (local time)
12PM - 1PM (local time)
我可以用这个表达式从https://regexr.com/ 中提取时间:
\d{1,2}(AM|PM)
但是,我无法在 powershell 中这样做:
cls
$var = "8AM - 10AM (local time)
12PM - 1PM (local time)"
if ($var -match "\d{1,2}(AM|PM)")
{
$matches
}
PS 输出:
Name Value
---- -----
1 AM
0 8AM
但是,当我在 PS 中使用下面的脚本时:
cls
$var = "8AM - 10AM (local time)"
[regex]::Matches($var,"\d{1,2}(AM|PM)").Value
它给出了正确的输出:
8AM
10AM
关于为什么会发生这种情况的任何想法?
【问题讨论】:
-
因为您使用的是捕获组。
标签: regex powershell powershell-3.0