• UltraEdit正則表達式介绍及实例



    前几天,有个将Excel中的数据导入到数据库中的需求。原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插入语句更easy方便,也不用写不论什么代码。因为我本人使用UltraEdit,故考 虑用UltraEdit的正則表達式来做这件事,以下是这种一个过程。

    如果导入的表字段为:name,email。 introduce。在Excel中的数据相应的也是这种字段。值得注意的是:在excel中的数据,比方introduce不能换行。不然的话语句拼凑后会运行会出错。

    要拼凑的样例数据例如以下(从Excel中拷贝并粘贴到UltraEdit中):

    张三                            zhangsan@zihou.com              "坐于2004年5月经教育部批准升格为普通本科院校。  "  李四                   lisi@zihou.com                           最专业的图文视频体育赛事直播、报道和‘专家'点评。

    各字段值之间以一个或多个tab键分隔着,操作步骤:

    替换按Ctrl+R

    1、  先将单引號、双引號之类的字符去掉,这一步不用正则,简单替换就可以。

    2、  去掉空行:用正则%[ ^t]++^p替换为空字符串,另外,还有^p$也能够,只是在替换的时候,^p$每次仅仅能替换一个空行。

    3、  在每行的最前面添加:insert into test(name,email,introduce)values(‘,在UltraEdit正则中,%是表示行首,例如以下图:


    4、  替换掉tab键


    5、  最后在行尾增加’);


    OK,大功告成。这样就拼凑成了正常的SQL插入语句了。感觉是不是非常快非常easy?

    怎样学习UltraEdit正则使用方法?能够通过下面两个方面:

    1、  从网上搜些这方面的介绍资料

    2、  通过UltraEdit的帮助文档来进行学习

    UltraEdit的帮助文档有双方面,一方面是其chm格式的文档、还有一方面是其官网的文档。

    官网的文档进入方式为:菜单帮助->高速入门指南,在打开的窗体中,点击任一链接都会到其官网帮助文档页面,当然了,假设你到这里了,也能够直接点击以下的链接:

    http://www.ultraedit.com/support/tutorials_power_tips/ultraedit.html

    chm格式的文档进入方式为:

    菜单帮助->使用帮助,或帮助->索引均可,例如以下图:


    在左側输入“正則表達式”进行查找,就会弹出右側的窗体,看到有非常多的使用介绍吧?你能够选择感兴趣的进去。

    以下是从UltraEdit文档中摘录的语法说明

    正則表達式 (UltraEdit 语法):

    符号 功能
    % 匹配行首 – 表示搜索字符串必须在行首,但不包含不论什么选定的结果字符中的行终止字符。
    $ 匹配行尾 – 表示搜索字符串必须在行尾。但不包含不论什么选定的结果字符中的行终止字符。

    ? 匹配不论什么除换行符的字符。

    * 匹配不论什么除换行符外所出现的随意数量的字符。

    + 匹配一个或多个前面的字符/表达式。

    必须找到至少一个出现的字符。不匹配反复的换行符。

    ++ 0 次或多次匹配前面的字符/表达式。不匹配反复的换行符。
    ^b 匹配一个分页符。
    ^p 匹配一个换行符 (CR/LF) (段落) (DOS 文件)
    ^r 匹配一个换行符 (仅 CR) (段落) (MAC 文件)
    ^n 匹配一个换行符 (仅 LF) (段落) (UNIX 文件)
    ^t 匹配一个制表符
    [ ] 匹配不论什么括号里的单个字符或范围
    ^{A^}^{B^} 匹配表达式 A 或 B
    ^ 忽略其后的正則表達式字符
    ^(*^) 在表达式加上括号或标签在替换命令中使用。正則表達式中能够有 9 个表达式标签,数字依据它们在正則表達式中的次序确定数字。

    对应的替换表达式是 ^x,x 的范围是 1-9。比如: 假设 ^(h*o^) ^(f*s^) 匹配“hello folks”。那么^2 ^1 表示将用“folks hello”替换它。

    注意 – ^ 这里涉及的字符“^”不是控制键 + 值。

    比如:

    m?n 匹配“man”、“men”、“min”,但不匹配“moon”。

    t*t 匹配“test”、“tonight”和“tea time”中的“tea t”部分。但不匹配“tea

    time” (“tea ”和“time”之间有换行)。

    Te+st 匹配“test”、“teest”、“teeeest”等。但不匹配“tst”。

    [aeiou] 匹配每一个元音小写字母

    [,.?] 匹配文字“,”、“.”或“?”。

    [0-9a-z] 匹配不论什么数字或小写字母

    [~0-9] 匹配除数字外的不论什么字符 (~ 表示不匹配其后的内容)

    你能够搜索象以下一样的表达式 A 或 B:

    “^{John^}^{Tom^}

    这将搜索 John 或 Tom。在两个表达式之间应该没有不论什么其他内容。

    你能够在同一次搜索象以下一样组合 A 或 B 和 C 或 D:

    “^{John^}^{Tom^} ^{Smith^}^{Jones^}”

    这将搜索后面尾随了 Smith 或 Jones 的 John 或 Tom。

    以下的表显示“Unix”样式的正則表達式语法。

    正則表達式 (Unix 语法):

    符号 功能
    表示下一个字符有特殊含义。“n”表示匹配字符“n”,“ ”匹配一换行符。看以下的样例 (d、f、 等)。
    ^ 匹配/停驻行首。
    $ 匹配/停驻行尾。
    * 匹配前面的字符 0 次或多次。
    + 匹配前面的字符一次或多次。不匹配反复的换行符。
    . 匹配不论什么除换行符之外的单个字符。不匹配反复的换行符。

    (表达式) 在表达式加上括号或标签在替换命令中使用。

    正則表達式中能够有 9 个表达式标签,数字依据它们在正則表達式中的次序确定数字。

    对应的替换表达式是 ^x,x 的范围是 1-9。比如: 假设 ^(h*o^) ^(f*s^) 匹配“hello folks”。那么^2 ^1 表示将用“folks hello”替换它。

    [xyz] 字符集,匹配不论什么括号间的字符。.
    [^xyz] 排除字符集。

    匹配不论什么不在括号间的字符。

    d 匹配一个数字字符。等同于 [0-9]。
    D 匹配一个非数字字符,等同于 [^0-9]。
    f 匹配一个换页符。
    匹配一个换行符。

    匹配一个回车符。

    s 匹配不论什么包括空格、制表符等不会显示的字符,但不匹配换行符。
    S 匹配不论什么非空白区域 (显示字符) 的字符,但不匹配换行符。
    匹配一个制表符。
    v 匹配一个垂直制表符。
    w 匹配不论什么包括下划线的词语。
    W 匹配不论什么非词语的字符。

    p 匹配 CR/LF (等同于 ),用来匹配 DOS 行终止符。

    注意 – ^ 这里所涉及的字符“^”不是控制键 + 值。

    比如:

    m.n 匹配“man”、“men”、“min”,但不匹配“moon”。

    Te+st 匹配“test”、“teest”、“teeeest”等。但不匹配“tst”。

    Te*st 匹配“test”、“teest”、“teeeest”等,还有“tst”。

    [aeiou] 匹配每一个元音小写字母

    [,.?] 匹配文字“,”、“.”或“?”。

    [0-9a-z] 匹配不论什么数字或小写字母

    [^0-9] 匹配除数字外的不论什么字符 (~ 表示不匹配其后的内容)

    你能够象以下一样的表达式 A 或 B 进行搜索:

    “(John|Tom)”

    这将搜索 John 或 Tom。在两个表达式之间应该没有不论什么其他内容。

    你能够在同一次搜索象以下一样组合 A 或 B 和 C 或 D:

    “(John|Tom) (Smith|Jones)”

    这将搜索 Smith 或 Jones 以及尾随在后面的 John 或 Tom。

    假设在查找/替换中没有选择使用正則表達式,在替换对象中下列特殊字符相同有效:

    符号 功能
    ^^ 匹配字符“^”
    ^s 表示活动文件窗体中选定 (加亮) 的文字。
    ^c 表示剪贴表的内容。

    ^b 匹配一个分页符。

    ^p 匹配一个换行符 (CR/LF) (段落) (DOS 文件)
    ^r 匹配一个换行符 (仅 CR) (段落) (MAC 文件)
    ^n 匹配一个换行符 (仅 LF) (段落) (UNIX 文件)
    ^t 匹配一个制表符

    注意 – ^ 这里所涉及的字符“^”不是控制键 + 值。

  • 相关阅读:
    客户端及服务端_终端模拟
    安装-homebrew
    客户端及服务端_网页访问
    python server搭建
    ping不通localhost但是可以ping通ip地址
    CentOS7 修改Jenkins以root用户运行
    tomcat配置外部静态资源映射路径(windows和Linux部署)
    Centos 6.10 安装 Jenkins
    axios ios 微信浏览器session问题
    微信公众号 分享接口 签名通过 分享无效果(JSSDK自定义分享接口的策略调整)
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7080966.html
Copyright © 2020-2023  润新知