Regex 如何替换记事本++;正则表达式?
我有SQL insert语句。其中一个值是我需要替换的日期Regex 如何替换记事本++;正则表达式?,regex,notepad++,Regex,Notepad++,我有SQL insert语句。其中一个值是我需要替换的日期 Insert into table (column_a, column_b) values ('test',to_date('01/DEC/15','DD/MON/RR')); 我有超过1000条Insert SQL语句,如上所述 我想替换列b的值,该列的格式为“to_date('01/DEC/15','DD/MON/RR')”date可以在函数中更改。我想用所有行的“SYSDATE”替换列b值 我试着跟踪什么都没用 ^[to_dat
Insert into table (column_a, column_b) values ('test',to_date('01/DEC/15','DD/MON/RR'));
我有超过1000条Insert SQL语句,如上所述
我想替换列b的值,该列的格式为“to_date('01/DEC/15','DD/MON/RR')”date可以在函数中更改。我想用所有行的“SYSDATE”替换列b值
我试着跟踪什么都没用
^[to_date].*
/to_date([a-zA-Z0-9/,'])+/
/^to_date(.*$/
有人能帮忙吗?在表格(a列,b列)中插入值(“测试”,截止日期('15年12月1日','DD/MON/RR');
迄今为止('
如果to_date函数的语法始终正确,这将满足您的要求:
to_date\([^)]+\)
此正则表达式的含义:
← 找到这个文本字符串截止日期
← 后跟一个开括号。反斜杠是一个“转义字符”。您需要“转义括号”,因为括号是正则表达式中用于定义组的特殊字符\(
← 后跟除右括号外的任何字符中的一个或多个。括号表示字符集[^)]
。前导插入符号[]
否定字符集(“不是此集”)^
← 后跟一个右括号。同样,由于这是文字括号,而不是正则表达式组的右括号,因此必须对字符进行转义\)
to_date\(.+?\)
这和
- 截止日期(
-任何字符中一个或多个字符的匹配项+?
- 文字
)
这就是你错的地方
- 任何使用
-这是“字符串开始”锚点。因为您要查找的字符串从不出现在开头,所以它永远不会匹配^
-这是一个字符类,与内部零个或多个字符匹配,即“t”、“o”、“d”、“a”或“e”[截止日期].
-这里的括号没有转义,因此它们不是匹配文字到目前为止([a-zA-Z0-9/,'])+
和(
,而是为里面的字符类形成一个捕获组。由于您遗漏了文字括号,这将永远不会匹配)
-这是一个无效的表达式,因为您缺少捕获组的结束日期截止日期(.*$
)
- 在我看来,在这种情况下,最简单的正则表达式是:
to_date.{25}
此表达式表示文字字符串“to_date”,后面有25个字符
它会起作用的。谢谢@Phil它起作用了