我正在尝试使用正则表达式在csv文件中查找日期并更改格式,因为此csv中有超过200列;不可能为每个日期手动列映射。
我之前的内容是以下
class Person(models.Model):
name
age
class Person_Address(models.Model):
address
number
city
state
person = models.ForeignKey(Person)
class State_Schedules(models.Model):
state
hour
如果我想用当前日期替换所有日期,工作正常,但这不是我的目标。我的目标是识别人类输入类型日期(mm / dd / yyyy)并将它们更改为数据库表在加载csv时期望的yyyy-mm-dd。
我该如何修改?或者有更好的方法来识别日期格式并更改格式吗?
答案 0 :(得分:0)
答案:使用捕获组。我不知道你为什么在使用之前无法将正则表达式赋值给变量(因为我做了很多次):
$sf = '\\path\dept\Extracts\Date_Modified.csv'
$regex = '(\d{1,2})\/(\d{1,2})\/(\d{4})'
@(Get-Content -Path $sf) |
ForEach-Object { $_ -replace $regex, '$3-$1-$2' } |
Set-Content -Path $sf
特别注意,在替换语句中使用单引号,这样您最终不会尝试将$1
插入到(可能为null)变量中。