• 正则表达式


    在不同语言中,正则表达式语法是不一样的,但是核心是一样的。

    NotePad++

    注意

    1. Notepad++正则表达式字符串最长不能超过69个字符

      • 当替换值为空时:全部替换选项并不只是替换现有匹配,原匹配替换后产生的匹配会被继续替换。
      • 当替换值不为空时:全部替换选项只是替换现有匹配,原匹配替换后产生的匹配不会继续替换。

    常用语法

      转义字符 如:要使用 “” 本身, 则应该使用“”

    Tab制表符 注:扩展和正则表达式都支持

    回车符CR 注:扩展支持,正则表达式不支持

    换行符LF 注:扩展支持,正则表达式不支持

    . 匹配任意一个字符

    ^ 其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行

    $ 其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行

    | 或运算符,匹配表达式左边和右边的字符串。如:ab|bc匹配“ab”或“bc”

    [] 匹配列表中任意单个字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意单个数字

    [^] 匹配列表之外的任意单个字符。如:[ab]匹配“a”和“b”以外的单个字符;[0-9]匹配任意单个非数字字符

    ***** 其左边的字符被匹配任意次(0次或多次)。如:be*匹配“b”,“be”或“bee”

    + 其左边的字符被匹配至少一次(1次或多次)。如:be+匹配“be”或“bee”,但不匹配“b”

    ? 其左边的字符被匹配0次或者1次。如:be?匹配“b”或“be”,但不匹配“bee”; ? 匹配行结尾符

    () 影响表达式匹配的顺序(类似C++的小括号会影响表达式运算顺序),并且用作表达式的分组标记(标记从1开始)如:([a-z]bc)smn1匹配“tbcsmntbc”;

    {} 指定前面的字符或分组的出现次数 如:abc{3}匹配abccc;a(bc){2}匹配abcbc

    d 匹配一个数字字符。等价于:[0-9]

    D d取反,匹配一个非数字字符。等价于:[^0-9]

    s 匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ ]

    S s取反的任意单个字符。

    w 匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_]

    W w取反的任意单个字符。等价于:[^A-Za-z0-9_]

     匹配单词起始处或结尾处 如:in匹配int,但不匹配sing

    问题及解决方案

    1.去掉每行代码前面的"    "4个空格

    问题描述

    如果想抽出Idea代码中某个函数代码,因函数在类中会出现每行前面都多4个空格的情况,所以想采用NotePad++的正则表达式一键替换。

    根据格式不同,情况不同,我使用的Idea格式是列间间隔4个空格。
    

    解决方案

    1. (错)将串:"^    " 替换:"";思路:将开头的四个空格替换为空。

      全部替换会把替换后相匹配的表达式也替换了(注意2)
      
      • 将串:"     " 替换:"";思路:因为开头四个空格前一个字符是换行符 ,此时除第一行外其余所有行达到目的,但是 被替换为了 (所以没有造成注意2的后果)。
      • 将串:"     " 替换:" ";思路:效果同上,但 不会被替换为 。
    2. (完美解决)将串:"    (.*$)" 替换:"1";

    请自己控制空格数
    
  • 相关阅读:
    Linux下如何查看版本信息
    SUSE12Sp3安装配置.net core 生产环境(2)-安装.NET Core 2.2.1 runtime 并运行.NET代码
    NET CORE Learning
    JWT(JSON Web Token)原理简介
    定性分析与定量分析的异同及优缺点
    《React16免费基础视频教程》【2】
    《React16免费基础视频教程》【1】
    《狂神说-JUC》【3】
    《狂神说-JUC》【2】
    《狂神说-JUC》【1】
  • 原文地址:https://www.cnblogs.com/AkimotoAkira/p/13833253.html
Copyright © 2020-2023  润新知