Notepad++正则匹配

这篇具有很好参考价值的文章主要介绍了Notepad++正则匹配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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”结尾的行
\t Tab制表符 注:扩展和正则表达式都支持
\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
替换前截图:
在这里插入图片描述
替换后截图:
Notepad++正则匹配,Windows,notepad++

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文章来源地址https://www.toymoban.com/news/detail-672030.html

到了这里,关于Notepad++正则匹配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Notepad-- Windows版本安装、简单体验

    之前在大学的时候就听我们老师说Nodepad++的作者的一些言论,当时直接卸载了就一直没用。后来找了好多网上其他一些所谓的替代软件,都不尽人意,于是Win自带记事本用了好几年,我也是只用来看一些项目代码,编辑的不多,所以需求不大,但是一直对着色、代码对

    2024年02月04日
    浏览(26)
  • 在 Notepad++ 中,你可以使用正则表达式的替换功能来实现将 trade_status 转换为驼峰形式

    在 Notepad++ 中,你可以使用正则表达式的替换功能来实现将 trade_status 转换为驼峰形式的 tradeStatus。 请按照以下步骤进行操作: 打开 Notepad++,打开你要修改的文件。 点击菜单栏的 “搜索”(Search)- “替换”(Replace),或者使用快捷键 Ctrl + H 打开替换对话框。 在替换对话

    2024年02月16日
    浏览(44)
  • Windows使用Notepad++编辑Linux服务器的文件

    🚀 Windows使用Notepad++编辑Linux服务器的文件 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发

    2024年02月15日
    浏览(38)
  • 从应用层到MCU,看Windows处理键盘输入 [1.在应用层调试Notepad.exe (按键消费者)]

    文本编辑器/文本编辑框是应用层常见的键盘处理程序。微软泄露的WinXP源码下有文本编辑器Notepad的实现: 文本编辑器的实现并不复杂,微软又(被迫)提供了Sample,因此本文就不重复造轮子了。本文从调试器的角度观察Notepad.exe如何消费键盘按键. 首先评估一下调试Notepad.exe的难

    2024年02月08日
    浏览(27)
  • 不想使用notepad++,快使用notepad--来替换

    相信越来越多的人已经认识到notepad++作者的可恶了,我曾经也是notepad++的使用者,当我看到它的作者一个台湾人,明目张胆的利用软件开始宣传他的错误观点后,便觉得要做些什么了。 notepad++不过是一个小软件,谈不上复杂,而且不支持mac和linux平台。我几乎每天都要使用编

    2024年02月16日
    浏览(33)
  • notepad++官网地址 https://notepad-plus-plus.org/;notepad++ 官网地址 https://notepad-plus-plus.org/

    notepad++ 官网地址 https://notepad-plus-plus.org/ 今天想进官网下载notepad++ ,却发现百度搜索官网都是出来很多乱七八糟的,就自己记录一下 notepad++官网:https://notepad-plus-plus.org/ notepad++项目主页:https://github.com/notepad-plus-plus/notepad-plus-plus/

    2024年02月11日
    浏览(31)
  • notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全

    资源宝分享:www.httple.net 注意: 不支持多行表达式 (involving n, r, etc). 1 基本表达式 符号 解释 . 匹配任意字符,除了新一行(n)。也就是说 “.”可以匹配 r ,当文件中同时含有r and n时,会引起混乱。要匹配所有的字符,使用sS。 (…) 这个匹配一个标签区域. 这个标签可以被

    2024年02月07日
    浏览(47)
  • vivado:关联notepad++

    网上好多都要下插件,看了野火视频,直接在vivado里面加路径弄好的 2 3(那个fonts and colors也经常用 改字体) 4 5 以下是我的路径 把[file name] -n[line number]  前面的路径换成你们的就好,注意这里是 \\\'/\\\',   路径直接复制过来是 \\\'\\\'

    2024年01月24日
    浏览(34)
  • notepad++的下载与使用

    1.进入官网下载 https://notepad-plus-plus.org/ 点击下载即可 2.选择中文简体   3.建议安装在D盘 其余步骤按照指示就行 4.安装后这几个是必选的  设置完成后就可以写中文了 以此为例  结果为  

    2024年02月21日
    浏览(25)
  • Notepad++下载安装

             自己在 找Notepad++发现网上的网址参差不齐,自己找到的一个不错下载链接见文末!          Notepad++ 是一个免费的代码编辑器,专为在微软 Windows 环境下使用。它是一个开源项目,采用 GPL 许可证,并使用 C++ 编程语言结合 Win32 API 和 STL 开发而成。Notepad++ 使

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包