zoukankan      html  css  js  c++  java
  • 正则表达式

    由于处理反标文件,而notepad 正好有正则表达式,

    一、找了不久,比较好的学习网页:

    1)Notepad++的正则表达式替换和替换

    http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_func_regex_replace.html

    Notepad++底层是使用SciTE的库的

    2)Notepad++正则表达式

    http://sgsoft.blog.163.com/blog/static/53772554201211493734655/

    3) 正则表达式30分钟入门教程

    http://www.jb51.net/tools/zhengze.html

     二.、举例

    需要把ha_bwdata[100]_net_1,ha_bwdata[10]_net_1,ha_bwdata[1]_net_1

    改为ha_bwdata_tmp[100]_net_1,ha_bwdata_tmp[10]_net_1,ha_bwdata_tmp[1]_net_1

    ha_bwdata[([0-9]+)]_net_1

    首先括号不能省,表示域的开始和结束,否则后面替换1没法表示,不能实用,有些网页是误导!

    另外[]等符号需要添加表示其不是正则表达式语法

    ha_bwdata_tmp[1]_net_1

      你可以是1到9的正在替换的1到9的域,

    zt:

    第一部分:要开始用正则表达式前,必须了解特殊字符列  


    正则表达式的特殊字符列表如下:
    .
        匹配任意字符
    (
        标记域(regex)的开始符(具体使用可参见例子)
    )
        标记域的结束符(具体使用可参见例子)

        n可以是1到9 代表正在替换的第一到第九的标记域
    <
        匹配Scintilla定义的单词的开始
    >
        匹配Scintilla定义的单词的结束
    x
        转义符. 例如, [ 表示 [ 而不是字符集(character set)的开始符.
    [...]
        字符集(character set), 例如, [abc] 代表字符 a, b or c. 也可以使用范围, 如 [a-z] 代表所有小写字母
    [^...]
        非字符集中的字符. 例如, [^A-Za-z] 代表处理大小写字母以外的字符
    ^
        行开始符
    $
        行尾符
    *
        匹配0次或多次. 例如, Sa*m 匹配 Sm , Sam , Saam , Saaam等等.
    +
        匹配1次或多次. 例如, Sa+m 匹配 Sam , Saam , Saaam and 等等.

    http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

    正则表达式30分钟入门教程


    .是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,不过它代表的不是字符,也不是位置,而是数量——它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.*连在一起就意味着任意数量的不包含换行的字符。现在hi.*Lucy的意思就很明显了:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词
    第二部分:五个例子

    例子1:
    目标:如何把 Fred2XXX 替换成 Sam2YYY
    技巧:搜索 Fred([1-9])XXX 替换成 Sam1YYY

    例子2:
    目标:把 == title == 替换成 = title =
    技巧:分两步:1, 搜索 ^=(=) 替换成 1 ;2, 搜索=(=)$ 替换成1。

    例子3:
    目标:把德国日期格式(dd.mm.yy) 转换成(yy-mm-dd)格式。
    技巧:搜索 ([^0-9])([0123][0-9]).([01][0-9]).([0-9][0-9])([^0-9]) 替换成14-3-25
        *  31.12.97 became 97-12-31
        * 14.08.05 became 05-08-14
        * the IP address 14.13.14.14 虽然匹配,但是要小心不要改变

    例子四:
    目标:在一个目录中通过命令 dir /b/s > filelist.txt,修改文件中的为/,并加上前缀file:///。
    技巧:分两步:1, 搜索 \ 替换为 /  ;2, 搜索 ^(.*)$  替换为 file:///1

    例子五:(英文原文中,这个例子有误,我这里修正了)
    目标:把文中的空格替换成,
    [Data]
    EU AX ALA 248 ?and Islands
    EU AL ALB 008 Albania, People's Socialist Republic of
    AF DZ DZA 012 Algeria, People's Democratic Republic of
    OC AS ASM 016 American Samoa
    EU AD AND 020 Andorra, Principality of
    AF AO AGO 024 Angola, Republic of
    NA AI AIA 660 Anguilla
    AN AQ ATA 010 Antarctica (the territory South of 60 deg S)
    NA AG ATG 028 Antigua and Barbuda
    SA AR ARG 032 Argentina, Argentine Republic
    AS AM ARM 051 Armenia
    NA AW ABW 533 Aruba
    OC AU AUS 036 Australia, Commonwealth of

    [Final Data]
    EU,AX,ALA,248,?and Islands
    EU,AL,ALB,008,Albania, People's Socialist Republic of
    AF,DZ,DZA,012,Algeria, People's Democratic Republic of
    OC,AS,ASM,016,American Samoa
    EU,AD,AND,020,Andorra, Principality of
    AF,AO,AGO,024,Angola, Republic of
    NA,AI,AIA,660,Anguilla
    AN,AQ,ATA,010,Antarctica (the territory South of 60 deg S)
    NA,AG,ATG,028,Antigua and Barbuda
    SA,AR,ARG,032,Argentina, Argentine Republic
    AS,AM,ARM,051,Armenia
    NA,AW,ABW,533,Aruba
    OC,AU,AUS,036,Australia, Commonwealth of

    技巧:搜索 ([A-Z]+) ([A-Z]+) ([A-Z]+) ([0-9]+) (.*)  替换为 1,2,3,4,5

  • 相关阅读:
    程序员常用资源工具集合(建议收藏)
    程序员常用资源工具集合(建议收藏)
    16个烧光你脑细胞的悖论
    2.2_模型的选择
    2.1_Scikit-learn数据集
    Sklearn数据集与机器学习
    1.4_数据的特征选择
    1.4_特征的选择
    1.3_数据的特征预处理
    1.2_数据的特征抽取
  • 原文地址:https://www.cnblogs.com/e-shannon/p/5816727.html
Copyright © 2011-2022 走看看