如何解决如何使用正则表达式选择字符串的一部分并将其放入 Powershell 中的变量
我想制作一个脚本来从文件名中提取日期,该文件名只在日期中使用数字而不是单词本身
我在想
$Date = $_.Name | sed -n "\d.+"
但是 powershell 中没有 sed
解决方法
我发现你必须反向工作,找到你的正则表达式中包含的 ISNT 并用空替换它。
"original word" -replace "regex for stuff you don't want"
所以我只想要日期,所以我说正则表达式不是“^\d”的数字,而不是“^-”的破折号。所以它用空代替了所有不是数字或破折号的东西。
$Date = $_.Name -replace "[^\d+^-]"
,
这应该有效:
$Date = [regex]::Match($_.Name,'\d.+').Value
如果您想将日期存储为 DateTime
以供进一步操作:
$Date = [datetime][regex]::Match($_.Name,'\d.+').Value
如果您想使用 -match
运算符,您可以这样做:
$Date = if($_.Name -match '\d.+')
{
$Matches[0]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。