gpt4 book ai didi

regex - 如何使用正则表达式使用 Powershell 替换文本文件中的日期

转载 作者:行者123 更新时间:2023-12-03 03:07:38 24 4
gpt4 key购买 nike

我对此做了很多搜索,但还没有找到答案,但我觉得我已经很接近了!

我的文本文件中的日期格式如下:18/06/2012 23:00:43 (dd/mm/yyyy HH:MM:SS) 我想将其转换为:2012-18-06 23:00:43 (yyyy-dd-mm HH:MM:SS) 使用 Powershell。

要使用正则表达式在文本编辑器中执行转换,我会这样做:

Find: ([0-9]+)/+([0-9]+)/+([0-9]+)

Replace with: \3-\2-\1

所以我尝试在以下 Powershell 脚本中使用相同的逻辑:

(Get-Content C:\script\test.txt) | 
Foreach-Object {$_ -replace "([0-9]+)/+([0-9]+)/+([0-9]+)", "(\3-\2-\1)"} |
Set-Content C:\script\test.txt

但这会导致以下意外的更改:

\3-\2-\1 23:00:43

谁能帮我解决这个问题吗?

非常感谢!

最佳答案

这就是你想要的:

(Get-Content C:\script\test.txt) | 
Foreach-Object {$_ -replace "([0-9]+)/+([0-9]+)/+([0-9]+)", '$3-$2-$1'} |
Set-Content C:\script\test.txt

捕获组引用是通过 $ 符号完成的,而不是反斜杠。另外,要按编号引用捕获的组,you must use single quotes around the replacement string ;否则,PowerShell 会将任何 $ 符号解释为对先前定义的变量的引用,在本例中,由于不存在此类变量,因此将生成字符串 "--"

关于regex - 如何使用正则表达式使用 Powershell 替换文本文件中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11122883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com