正则表达式的常用操作

使用正则表达式匹配密码强度要求,删除各类编程语言注释、空行。

🔑密码限制

要求:包含大写、小写字母、数字、长度6-16位

^(?![A-Za-z]+$)(?![0-9a-z]+$)(?![0-9A-Z]+$)[0-9A-Za-z]{6,16}$
  1. ^ 匹配开头位置
  2. (?![A-Za-z]+$) 限定后面不全是字母
  3. (?![0-9a-z]+$) 限定后面不全是数字和小写字母
  4. (?![0-9A-Z]+$) 限定后面不全是数字和大写字母
  5. [0-9A-Za-z._ ] 限定由数字、大小写字母组成
  6. {6,16} 限定长度为6-16位
  7. $ 匹配行结尾位置

-

💡删除注释、空行

空行

  • 删除所有空行:
^\s*\n
  • 多行连续空行变一行空行:
^\s*\n\s*$

C/C++ 注释

行注释

  • 一般:
\/\/.*
\/\/.*?$
  • 代码含有有网址等信息:
(?<!https:|http:)\/\/.*?$

块注释

/\*[\w\W\n]*?\*/

所有注释

\/\/.*?$|/\*[\w\W\n]*?\*/
  • 测试代码
/*
 * @Author: Pomin
 * @Date: 2022-01-11 19:38:23
 * @Github: https://github.com/POMIN-163
 * @LastEditTime: 2022-02-08 16:38:44
 * @Description:
 */
/*
safssd
  */
#include <fstream>

using namespace std;

int main(int argc, char const* argv[]) {
    double X[10] = { 0 }; // Data_number代表数据的个数
    double Y[10] = { 0 };
    ifstream in1, in2; // 从硬盘到内存
    in1.open("E:\\shuju\\x2.txt"); // 在相应的路径中打开txt文件
    in2.open("E:\\shuju\\y2.txt");
    for (int i = 0; i < 10; i++) { // 按行读取文件,Data_number表示数据有多少行,一行一个数据
        in1 >> X[i];
         // cout << X[i] << endl; // 可以在此输出数据,检查是否读取成功
    }
    for (int i = 0; i < 10; i++) { // 按行读取文件,Data_number表示数据有多少行,一行一个数据
        in2 >> Y[i];
         // cout << Y[i] << endl;
    }
    in1.close(); // 文件关闭
    in2.close(); // 文件关闭

    return 0;
}
  • notepad3 编辑器结果

-

  • vscode 编辑器结果

-

  • Visual Studio 结果

-

python 注释

行注释

#.*

块注释

'''[\w\W\n]*?'''

所有注释

#.*|'''[\w\W\n]*?'''

-

MATLAB 注释

行注释

%[^{}].*

块注释

%\{[\w\W\n]*?%\}

所有注释

%[^{}].*|%\{[\w\W\n]*?%\}

-