Notepad++正则匹配

news2024/7/6 20:31:02

Notepad++正则匹配

  • Notepad++正则表达式字符串最长不能超过69个字符
  • 一、支持的语法
  • 二、正则表达式诀窍
  • 三、案例
    • 3.1、匹配时间戳
    • 3.2、提取指定字符串
    • 3.3、提取单词
    • 3.4、查找中文字符
  • 四、示例
    • 4.1、示例1:把含目标字符串及之后的字符串全部替换
    • 4.2、示例2:
    • 4.3、示例3:
    • 4.4、示例4:
    • 4.5、示例5:
    • 4.6、示例6:
    • 4.7、示例7:
    • 4.8、示例8:把select * 替换成delete , 同时在行尾加分号
    • 4.9、示例9:每一行的前面增加一个新行,内容为go
    • 4.10、示例10:每隔一行增加一个新行,内容为go
    • 4.11、示例11:去掉sql注释行内容
    • 4.12、示例12:(扩展模式替换)
    • 4.13、示例13:给单词前后加单引号
    • 4.14、示例14:
    • 4.15、示例15:删除只有数字的行
    • 4.16、示例16:去掉所有行中的<>(里面不能嵌套<>)
    • 参考资料


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

一、支持的语法

符号含义
.代表除换行符外的任意字符
*代表匹配零次或者多次
+表示匹配一次到多次
?其左边的字符被匹配0次或者1次
()影响表达式匹配的顺序(类似C++的小括号会影响表达式运算顺序),并且用作表达式的分组标记(标记从1开始)如:([a-z]bc)smn\1匹配“tbcsmntbc”
{}指定前面的字符或分组的出现次数
[]匹配列表中任意单个字符。如:[ab]匹配“a”或“b”;[0-9]匹配任意单个数字
[^]匹配列表之外的任意单个字符
\转义字符 如:要使用 “\” 本身, 则应该使用\\
\d单个数字
|匹配表达式左边和右边的字符串。如:ab|bc匹配“ab”或“bc”
\d匹配一个数字字符。等价于:[0-9]
\D\d取反,匹配一个非数字字符。等价于:[^0-9]
\s匹配任意单个空白字符:包括空格、制表符等(注:不包括换车符和换行符)。等价于:[ \t]
\S\s取反的任意单个字符。
\w匹配包括下划线的任意单个字符。等价于:[A-Za-z0-9_]
\W\w取反的任意单个字符。等价于:[^A-Za-z0-9_]
\b匹配单词起始处或结尾处 如:\bin匹配int,但不匹配sing
^其右边的表达式被匹配在行首。如:^A匹配以“A”开头的行
$其左边的表达式被匹配在行尾。如:e$匹配以“e”结尾的行
\tTab制表符 注:扩展和正则表达式都支持
\r回车符CR 注:扩展支持,正则表达式不支持
\n换行符LF 注:扩展支持,正则表达式不支持
Note: 以换行符结尾表示是$\r\n,而不是\r\n$

二、正则表达式诀窍

^   -->  代表开头
.*  -->  相当于like '%',任意字符
$   -->  代表结尾

三、案例

3.1、匹配时间戳

#时间戳示例
2022-12-21 14:22:24.123456

#表达式
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+

3.2、提取指定字符串

#原始字符串
<program sector_size_in_bytes="512" filename="" label="fsg" num_partition_sectors="4096">
<program sector_size_in_bytes="512" filename="" label="dsg" num_partition_sectors="4096">
<program sector_size_in_bytes="512" filename="1.txt" label="dsg" num_partition_sectors="4096">
#提取部分
filename="" label="fsg"
filename="" label="dsg"
filename="1.txt" label="dsg"
#查找目标:
.*(filename.*label\=\"[^ ]*).*
#替换为: 
\1

#不查找filename为空的字符串
也就是说不匹配""这样的字符串,但是[^]这种表达式只能匹配单独字符,如果写了字符串,也会把字符串拆开单独匹配。那么如何匹配非某字符串这种形式呢?答案是零宽负向先行断言(?!pattern) 或者零宽负向后行断言(?<!pattern)
#查找目标:
#这里注意一下,(?!"")后面要加.*,代表.*中不匹配""。
filename=(?!"").* label=[^ ]*
#替换为: 
\1

3.3、提取单词

#原始字符串
activities-activity
#提取activity
#查找目标:
(.+)-(.+)
#替换为:
\2

3.4、查找中文字符

[\x{4e00}-\x{9fa5}]*[\x{4e00}-\x{9fa5}]

四、示例

4.1、示例1:把含目标字符串及之后的字符串全部替换

把下面的字符串

123abcfg
abc
abcd

#替换成:

123hello
hello
hello

解决方案:表达式替换
查找目标:abc.*$
替换为:hello
替换前截图:
在这里插入图片描述
替换后截图:
在这里插入图片描述

4.2、示例2:

123abcfg
abc
abcd
#替换成:
123@abcfg@
@abc@
@abcd@
#表达式
(abc.*)$ 替换为:@\1@

4.3、示例3:

str[1]abc[991]
str[2]abc[992]
str[11]abc[993]
str[222]abc[996]
#替换成
god[991]
god[992]
god[993]
god[996]

#表达式
str[[0-9]+]abc\[([0-9]+)\] 替换为:god[\1]
str[[0-9]+]abc([[0-9]+]) 替换为:god\1
OR:
str\[([0-9]+)\]abc\[([0-9]+)\] 替换为:god[\2]
str([[0-9]+])abc([[0-9]+])	替换为:god\2

4.4、示例4:

#删除所有空行
step1:a. 选择正则表达式  b. 查找串:^[ \t]*$    替换串:空
step2:a. 选择扩展       b. 查找串:\r\n\r\n   替换串:\r\n    注:多次点击替换,直到没有可替换的字串

4.5、示例5:

PERMODLOG
RESERVEDETAIL
RESERVEMAIN
#替换为:
db2 "delete from PERMODLOG " 
db2 "import from ./data/PERMODLOG.ixf of ixf modified by identityignore insert into PERMODLOG "
db2 "delete from RESERVEDETAIL " 
db2 "import from ./data/RESERVEDETAIL.ixf of ixf modified by identityignore insert into RESERVEDETAIL "
db2 "delete from RESERVEMAIN " 
db2 "import from ./data/RESERVEMAIN.ixf of ixf modified by identityignore insert into RESERVEMAIN "

#表达式
(^\w+$)
#替换为
db2 \"delete from \1 \" \r\ndb2 \"import from \.\/data\/\1\.ixf of ixf modified by identityignore insert into \1 \"

4.6、示例6:

PERMODLOG
RESERVEDETAIL
RESERVEMAIN
#替换为
db2 "export to ./data/PERMODLOG.ixf of ixf select * from PERMODLOG "
db2 "export to ./data/RESERVEDETAIL.ixf of ixf select * from RESERVEDETAIL "
db2 "export to ./data/RESERVEMAIN.ixf of ixf select * from RESERVEMAIN "
#表达式
(^\w+$)
#替换为
db2 \"export to \.\/data\/\1\.ixf of ixf select \* from \1 \"

4.7、示例7:

alter table MonQryApply add constraint PK_MonQryApply primary key (orderID);
alter table sRegInfo add constraint PK_sRegInfo primary key (MachID);
#替换为
execute immediate 'alter table MonQryApply add constraint PK_MonQryApply primary key (orderID)';
execute immediate 'alter table sRegInfo add constraint PK_sRegInfo primary key (MachID)';
#表达式
(alter.*\))
#替换为
execute immediate '\1'

4.8、示例8:把select * 替换成delete , 同时在行尾加分号

select * from test_t
#替换为
delete  from test_t;
#表达式
^select \*(.+)$
#替换为:
delete \1;

4.9、示例9:每一行的前面增加一个新行,内容为go

insert into test values(1,'zhangsan');
insert into test values(2,'lisi');
insert into test values(3,'wangwu');
#替换为
go
insert into test values(1,'zhangsan');
go
insert into test values(2,'lisi');
go
insert into test values(3,'wangwu');
#表达式
^insert(.*)
#替换为
go\r\ninsert\1

4.10、示例10:每隔一行增加一个新行,内容为go

insert into test values(1,'zhangsan');
insert into test values(2,'lisi');
insert into test values(3,'wangwu');
#替换为:
insert into test values(1,'zhangsan');
go
insert into test values(2,'lisi');
go
insert into test values(3,'wangwu');
go
#表达式
^(\w+.+)$
#替换为
\1\r\ngo

4.11、示例11:去掉sql注释行内容

--插入数据1
insert into test values(1,'zhangsan');
--插入数据2
insert into test values(2,'lisi');
--插入数据3
insert into test values(3,'wangwu');
#替换为:

insert into test values(1,'zhangsan');

insert into test values(2,'lisi');

insert into test values(3,'wangwu');
#表达式
^(--.*)$
#替换为
空

4.12、示例12:(扩展模式替换)

create index IX_BUSINESSLIST_ATM_ACCOUNTNO on BUSINESSLIST_ATM (ACCOUNTNO);
create index IX_BUSINESSLIST_ATM_COREID on BUSINESSLIST_ATM (COREID);
create index IX_BUSINESSLIST_ATM_INSERDATE on BUSINESSLIST_ATM (INSERTDATE);
#替换为
create index IX_BUSINESSLIST_ATM_ACCOUNTNO on BUSINESSLIST_ATM (ACCOUNTNOASC)
 tablespace GZHINDEX
 pctfree 10
 initrans 2
 maxtrans 255
 storage
 (
 initial 64K
 next 1M
 minextents 1
 maxextents unlimited
 );

create index IX_BUSINESSLIST_ATM_COREID on BUSINESSLIST_ATM (COREIDASC)
 tablespace GZHINDEX
 pctfree 10
 initrans 2
 maxtrans 255
 storage
 (
 initial 64K
 next 1M
 minextents 1
 maxextents unlimited
 );

create index IX_BUSINESSLIST_ATM_INSERDATE on BUSINESSLIST_ATM (INSERTDATEASC)
 tablespace GZHINDEX
 pctfree 10
 initrans 2
 maxtrans 255
 storage
 (
 initial 64K
 next 1M
 minextents 1
 maxextents unlimited
 );


#表达式
);
#替换为
ASC)\r\n tablespace GZHINDEX\r\n pctfree 10\r\n initrans 2\r\n maxtrans 255\r\n storage\r\n (\r\n initial 64K\r\n next 1M\r\n minextents 1\r\n maxextents unlimited\r\n );\r\n

4.13、示例13:给单词前后加单引号

WFD545
FDS654A
FDS7887
#替换为
'WFD545'
'FDS654A'
'FDS7887'

#表达式:
^(\w+)$
#替换为
'\1'

4.14、示例14:

alter table T_BILL_TOTAL_H modify BAGNAME varchar2(80);
alter table T_BILL_TOTAL_H modify CHECKNAME varchar2(80);
alter table T_BILL_TOTAL_NET modify BAGNAME varchar2(80);
#替换为
alter table T_BILL_TOTAL_H alter BAGNAME set data type varchar(80);
alter table T_BILL_TOTAL_H alter CHECKNAME set data type varchar(80);
alter table T_BILL_TOTAL_NET alter BAGNAME set data type varchar(80);
#表达式
modify (\s*\w+\s*) varchar2\(
#替换为
alter \1 set data type varchar\(

4.15、示例15:删除只有数字的行

asdfasdf
45646545
asdfasdf
asdfasdf
54564
asdfasdf
#替换为
asdfasdf
asdfasdf
asdfasdf
asdfasdf
#表达式
^[\d]+$\r\n
#替换为空

4.16、示例16:去掉所有行中的<>(里面不能嵌套<>)

<code><span class="kwd">import</span><span class="pln"> </span><dfn><span class="typ">BaseHTTPServer</span></dfn><span class="pln">
#替换为
import BaseHTTPServer
#表达式
<[^>]*>
#替换为空

参考资料

https://blog.csdn.net/weixin_43360896/article/details/116310179

https://blog.csdn.net/u010182162/article/details/83689008

https://blog.csdn.net/gdp12315_gu/article/details/51730584

https://www.cnblogs.com/songbiao/p/12470163.html?ivk_sa=1024320u

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/929038.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF读取dicom序列:实现上一帧、下一帧、自动播放、暂停

一、整体设计概况 创建WPF程序使用.Net Framework4.8定义Image控件展示图像增加标签展示dcm文件信息规划按钮触发对应的事件:上一帧、下一帧、自动播放、暂停、缩放、播放速率二、页面展示 三、代码逻辑分析 Windows窗体加载Loaded事件:生成初始图像信息Windows窗体加载Mous…

搭建产品知识库:正确构建和使用产品知识库,做好知识沉淀

对于产品来说&#xff0c;通过设立产品知识库将用户所需要的产品知识进行汇总和整理&#xff0c;并且针对用户所急需解决的问题提供相关解决方案&#xff0c;这就是搭建产品知识库最大的价值。 产品知识库的搭建方式其实很简单&#xff0c;只需要借助HelpLook将优质的内容和解决…

Java线程 - 详解(1)

一&#xff0c;创建线程 方法一&#xff1a;继承Thread类 class MyThread extends Thread{Overridepublic void run() {System.out.println("线程1");} }public class Test {public static void main(String[] args) {MyThread myThread new MyThread();myThread.…

基于YOLOv8模型和DarkFace数据集的黑夜人脸检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型和DarkFace数据集的黑夜人脸检测系统可用于日常生活中检测与定位黑夜下的人脸&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目…

TCP--半连接队列和全连接队列

原文地址&#xff1a;https://plantegg.github.io/2020/04/07/%E5%B0%B1%E6%98%AF%E8%A6%81%E4%BD%A0%E6%87%82TCP–%E5%8D%8A%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97%E5%92%8C%E5%85%A8%E8%BF%9E%E6%8E%A5%E9%98%9F%E5%88%97–%E9%98%BF%E9%87%8C%E6%8A%80%E6%9C%AF%E5%85%AC%E…

分布式事务篇-2.3 Seata事务模式

文章目录 前言一、事务模式 是什么&#xff1f;二、Seata中的事务模式支持&#xff1a;2.1 AT 模式&#xff08;自动补偿型事务&#xff09;&#xff1a;2.1.1 AT 模型&#xff1a;2.1.2 AT 写隔离&#xff1a;2.1.3 AT 读隔离&#xff1a;2.1.3 AT 优缺点&#xff1a; 2.2 TCC…

图的应用(考研)

一、最小生成树 性质&#xff1a; &#xff08;1&#xff09;不唯一&#xff08;2&#xff09;权值之和是唯一的&#xff08;3&#xff09;删去一条边会变成非连通图&#xff0c;增加一条边会产生回路&#xff08;4&#xff09;最小生成树的边数为顶点数减一 1、Prim算法 m…

第P2周:彩色图片识别

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 我的环境&#xff1a; 语言环境&#xff1a;Python3.10.7编译器&#xff1a;VScode深度学习环境&#xff1a;TensorFlow 2.13.0 一、前期工作&#xff1a; …

生产制造型企业BOM搭建分析

导 读 ( 文/ 2358 ) 在上几篇文章中&#xff0c;我们讲到了基础的物料管理方法&#xff0c;在生产制造中&#xff0c;物料作为原材料&#xff0c;通过加工&#xff0c;结构组装成产品。那么加工、组装的依据将来源于设计人员出具的零件清单&#xff0c;也就是我们常说的BOM。 …

本地编译angular提示内存溢出

本地遇到编译angular时&#xff0c;报如下错误&#xff1a; FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 两种解决办法&#xff0c;具体如下&#xff1a; 设置环境变量&#xff0c;见图&#xff1a; 直接在…

cortex-A7核LED灯实验--STM32MP157

实验目的&#xff1a;实现LED1 / LED2 / LED3三盏灯工作 一&#xff0c;分析电路图 1&#xff0c;思路 分析电路图可知&#xff1a; 网络编号 引脚编号 LED1 PE10 LED2 > PF10 LED3 > PE8 2&#xff0c;工作原理&#xff1a; 写1&#xff1a;LED灯亮&#xf…

小猫爪:嵌入式小知识17-XCP on CAN简介

小猫爪&#xff1a;嵌入式小知识17-XCP on CAN简介 0 目录1 前言2 XCP on CAN3 实战演练3.1 CONNECT3.2 GET_COMM_MODE_INFO和GET_STATUS3.3 GET_SEED和UNLOCK3.4 获取Slave信息3.5 SET_MTA和BUILD_CHECKSUM3.6 设置DAQ3.7 DAQ传输3.8 SHORT_UPLOAD3.9 标定3.10 FLASH Program …

算法笔记(三):数组

静态数组 动态数组 把动态数组封装为一个类 1、属性 public class DynamicArray implements Iterable<Integer> {private int size 0; // 逻辑大小(有效的元素个数)private int capacity 8; // 容量private int[] array {}; // 动态数组 }2、方法 1&#xff…

癌症预测新利器:弹性逻辑回归让健康更可控!

一、引言 癌症是全球范围内健康领域的重大挑战&#xff0c;早期预测和诊断对于提高治疗效果和生存率至关重要。在过去的几十年里&#xff0c;随着医学和数据科学的快速发展&#xff0c;基于机器学习和统计方法的癌症风险预测成为研究的热点。其中&#xff0c;弹性逻辑回归作为一…

数据结构之哈希

哈希 1. 哈希概念2. 哈希冲突3. 哈希冲突解决3.1 哈希表的闭散列3.2 哈希表的开散列 2. 哈希的应用2.1 位图2.2 布隆过滤器 哈希&#xff08;Hash&#xff09;是一种将任意长度的二进制明文映射为较短的二进制串的算法。它是一种重要的存储方式&#xff0c;也是一种常见的检索方…

Unity——拖尾特效

拖尾是一种很酷的特效。拖尾的原理来自人类的视觉残留&#xff1a;观察快速移动的明亮物体&#xff0c;会看到物体移动的轨迹。摄像机通过调整快门时间&#xff0c;也可以拍出具有拖尾效果的照片&#xff0c;如在城市的夜景中&#xff0c;汽车的尾灯拖曳出红色的线条。 在较老…

平安健康,找到了医疗服务的价值密码

健康是人类的永恒需求&#xff0c;围绕医疗和健康服务衍生的产业&#xff0c;却苦于无法和用户建立足够紧密、长期的联系。由此&#xff0c;也不得不面临价值从何而来的问题。 作为医疗服务领域的代表性企业&#xff0c;平安健康医疗科技有限公司&#xff08;股票简称“平安好…

Oracle解锁表、包、用户、杀会话、停job

Oracle解锁表、包、用户、杀会话、停job 一、创建包tzq_server_pkg二、授权给需要使用的用户log三、解锁表&#xff1a;执行存过unlock_table(schema_name, table_name)四、解锁包&#xff1a;执行存过unlock_package(schema_name, pkg_name)五、解锁用户&#xff1a;执行存过u…

14-数据结构-二叉树的创建以及前中后遍历,以及结点和叶子节点的计算(C语言)

概述&#xff1a; 二叉树&#xff0c;这里采用孩子链表存储法&#xff0c;即一个数据域和两个左右孩子指针域。随后递归进行遍历即可。在创建二叉树的时候&#xff0c;先创建各个二叉树结点&#xff08;这里的结点采用动态分配&#xff0c;因此结点为指针变量&#xff09;&…

c语言中编译过程与预处理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、c语言的编译与链接1、编译与链接概述2、编译与链接详解 二、c语言预处理1.c语言中内置的预定义符号2、#define定义标识符3、#define定义宏4、#define 替换规…