fangmin723 发表于 2024-6-13 15:36:26

正则表达式在.Net的应用

本帖最后由 fangmin723 于 2024-6-13 16:24 编辑

13、正则表达式删除C/C++所有注释和多余空行
    13.1、正则表达式删除空行
      在编写文本文件时,我们经常需要去除多余的空行,使得文本内容更紧凑美观。本文将简要介绍如何使用正则表达式快速删除多余的空行。
      正则表达式(Regular Expression),是一种用来描述或匹配一系列符合某个语法规则的字符串的方法。在实际应用中,正则表达式常常用来匹配字符串中的特定文本,比如空白符、数字、字母和符号等。


      本文中使用正则表达式匹配空白行,具体正则表达式如下:
            ^\s*$:只能匹配不能删除
            \n\s*$:匹配删除
      解释如下:
            ^ 表示匹配字符串的开头
            \s 表示匹配任意空白符,包括空格、制表符和换行符等
            * 表示匹配前面的字符 0 次或多次
            \n 表示匹配换行符
            $ 表示匹配字符串的结尾。
            
      组合在一起,上述正则表达式可以匹配空行,也就是仅包含空白符的行。
            ^\s*\n
      多行连续空行变一行空行:
            ^\s*\n\s*$


    13.2、行注释
      一般:
            \/\/.*
      或
            \/\/.*?$
      代码含有有网址等信息:
            (?<!https:|http:)\/\/.*?$


    13.3、块注释
      /\*[\w\W\n]*?\*/
      
    13.4、所有注释
      \/\/.*?$|/\*[\w\W\n]*?\*/
      
14、正则表达式捕获组替换
    例1:
      数据源:
      /// <summary>
      /// 范围计算机 CreationClassName 属性的值。
      /// </summary>
      public object SystemCreationClassName
      {
            get => this.Properties[""].Value;
      }
      
      批量在""中添加对应的属性名称:
      查找:(?<=public object )(\w*)(\n*\s*\{\n*\s*get => this\.Properties\[")
      替换:$1$2$1


      结果:
      /// <summary>
      /// 范围计算机 CreationClassName 属性的值。
      /// </summary>
      public object SystemCreationClassName
      {
            get => this.Properties["SystemCreationClassName"].Value;
      }

      https://v.qq.com/x/page/o3553dd16kr.html
    ========================================================
    例2:
      数据源:
            public UInt16[] BiosCharacteristics { get; private set; }
            
      批量替换:
            查找:(public )(\w*\[?\]? )(\w*) { get; private set; }
            替换:$1object $3 => this.Properties["$3"].Value;
      结果:
            public object BiosCharacteristics => this.Properties["BiosCharacteristics"].Value;


咏郡 发表于 2024-6-15 18:37:02

太深奥了:lol
页: [1]
查看完整版本: 正则表达式在.Net的应用