先转载再原创:Notepad++ 与正则表达式 .

来源:互联网 发布:vdl眼部打底mac 编辑:程序博客网 时间:2024/06/04 23:22

进行数据库迁移的时候,sqlserver里面的datetime数据类型是和mysql中的不一致的,不能直接运行,所以必须首先对他进行修改,由于我们项目是老项目,里面的日期需要更改,所以正好我们可以直接采用正则表达式的方式进行批量的修改就能达到目的。

Notepad++ 与正则表达式 .分类: 软件使用 2008-09-08 23:48 1659人阅读 评论(0) 收藏 举报   Notepad++ 是一款自由的编辑器,适合编辑各种源代码,也可作为替代记事本的工具。它与前日提到的 SciTE 都使用了 Scintilla 作为编辑组件,在 Windows 平台的自由文本编辑器中可谓出类拔萃。其特色于官方网站介绍详尽,图文并茂,此处不再赘述。  昨天卖了个关子,今天就在此略微探讨一下正则表达式。  眼下已经有了各公司的代码文件,000002、000006……排成一列,要想变成公司代码,该如何做呢?为了简便起见,就用 URL 三个字符代替网页地址。  用 Notepad++ 打开公司代码文件,把光标移至开头(快捷键为 Ctrl+Home),选择 Search 菜单中的 Replace...(快捷键为 Ctrl+H),打开 Replace 对话框。在 Find what 中输入“(.+)”(没有引号,而且都是半角符号),在 Replace with 中输入“/1”,切记要选择 Regular expression 选项,然后按 Replace All 按钮。几百行公司代码转瞬间就会被替换成所需的格式。  

那么,为什么用“(.+)”就可以选择一行代码呢? “/1”又是做什么的呢?  首先需要说明一点,Notepad++ 的正则表达式是以行为单位的。

在查找表达式中,

“.”表示任意字符;

“+”表示匹配 1 次或多次,

比如,ab+c 可以匹配 abc,abbc,abbbc 等;圆括号“(”和“)”分别为匹配区域的起始和结束。由此可知,

“(.+)”可以匹配任何一行内容。  

在替换表达式中,“/1”表示第一个匹配区域所匹配的内容,依此类推,“/n”表示第 n(可取 1-9)个匹配区域所匹配的内容。将匹配的内容代入,就得到了所需的格式。通过“/n”可以改变查找字符串的顺序,并创造出新的组合,大有用处。  正则表达式极为灵活,要做此事还有许多其他方法。比如,在查找处可以输入“[0-9]+”,亦可达到同样的效果。这里方括号“[]”表示符号集合,“[0-9]”表示 0 至 9 这十个数字中的任何一个,而“[0-9]+”则表示全部为数字的一行。  正则表达式功能强大,若能恰当使用,可事半功倍。有兴趣的话,可以参考一下 Notepad++ 的正则表达式帮助。

文章来源:http://blog.csdn.net/GooderJump/article/details/2901839

运用部分:

CAST(0x000092F400C91AD0 AS DateTime),

表达式是:.CAST.................................(不能采用“(”,“)”等,因为“(”和“)”是正则表达式结束标志,只能把它也看出一个字符)

替换成:'2010-01-01 00:00:00'

注意:

碰到values '2010-01-01 00:00:00' 的时候,发现缺少了括号,这是是因为datetime在第一列所致,修改方案,再次替换,

表达式:values.'2010

替换成:values ('2010

于是搞定!