在Notepad ++中查找/替换特定列的值

时间:2015-01-10 03:40:49

标签: regex notepad++

我想我需要RegEx,但这对我来说是新的......

我在文本文件中有200行数据,100行INSERT INTO行和100对应的VALUE行。

所以它看起来像这样:

INSERT INTO DB1.Tbl1 (Col1, Col2, Col3........Col20)
VALUES(123, 'ABC', '201450204 15:37:48'........'DEF')

我想要做的是用以下代码替换Col3中的每个Date / Timestamp值:CURRENT_TIMESTAMP。每行的日期/时间戳都不相同。它们有所不同,但它们都在第3列。

此表中有100条记录,其他一些表格更多,这就是我寻找快捷方式的原因。

2 个答案:

答案 0 :(得分:0)

试试这个:

使用(INSERT[^,]+,[^,]+,)([^,]+,)([^']+'[^']+'[^']+)('[^']+',)进行搜索并替换为$1$3并在记事本++中选中标记正则表达式

Live demo

答案 1 :(得分:0)

使用

  • " VALUES"正好在行的开头,
  • " Col1中"值全部为数字,
  • " Col2"
  • 的值内没有单引号

你可以搜索

^(VALUES\(\d+, '[^']+', )'(\d{9} \d{2}:\d{2}:\d{2})'

并替换为

\1CURRENT_TIMESTAMP

沿着RegEx101。 (请记住,Notepad ++在替换字符串中使用反斜杠...)

就个人而言,我考虑直接进入数据库,并在那里修复时间戳 - 特别是,如果你有更多的数据需要处理。 (有关一般概念,请参阅我上面的评论。)

如果需要进一步的细节/调整,请发表评论。