nodepad++正则表达式学习

最近用的

配合PowerToys中的PowerRename功能,给一系列文件重命名(前面补齐0)

# 正则表达式
(.+)

# 替换模式
0$&

目的
保留每行开头"\MusicParty及其后面的文本

实现01
查找目标

^".*\\MusicParty

替换

"\\MusicParty

实现02
查找目标

^"([^"]*\\MusicParty)

替换

"\1

在正则表达式中,使用括号 () 来捕获你想保留的部分。
在替换部分使用反向引用 \1 来引用捕获组。

原文本

"E:\备份\音趴\windows调试用\MusicParty\BilibiliApi\BilibiliApi.cs"
"E:\备份\音趴\windows调试用\MusicParty\MusicApiContract\Music.cs"
"E:\备份\音趴\windows调试用\MusicParty\music-party\pages\index.tsx"
"E:\备份\音趴\windows调试用\MusicParty\music-party\src\api\api.ts"
"E:\备份\音趴\windows调试用\MusicParty\music-party\src\api\musichub.ts"
"E:\备份\音趴\windows调试用\MusicParty\music-party\src\components\musicplayer.tsx"
"E:\备份\音趴\windows调试用\MusicParty\NeteaseCloudMusicApi\NeteaseCloudMusicApi.cs"
"E:\备份\音趴\windows调试用\MusicParty\QQMusicApi\QQMusicApi.cs"

替换后文本

"\MusicParty\BilibiliApi\BilibiliApi.cs"
"\MusicParty\MusicApiContract\Music.cs"
"\MusicParty\music-party\pages\index.tsx"
"\MusicParty\music-party\src\api\api.ts"
"\MusicParty\music-party\src\api\musichub.ts"
"\MusicParty\music-party\src\components\musicplayer.tsx"
"\MusicParty\NeteaseCloudMusicApi\NeteaseCloudMusicApi.cs"
"\MusicParty\QQMusicApi\QQMusicApi.cs"

常用的:

查找目标:
([ABCD])\.
替换为:
    \1.
或者
    $1.
或者
\t\1.
也可以用转义字符
\1 $1是和括号配合用的

注意!!!!!!!!!,有些地方只能使用替换模式$

$&:引用整个正则匹配到的字符串(等同于 $0)。
$1:匹配到第一个正则括号里的
$2:匹配到第二个正则括号里的

可以在这个网址测试 https://regexr-cn.com/

作用:

在选项前面加四个空行(一个制表符)

参考:

http://www.nndssk.com/rjwt/155408wNRbtY.html

https://blog.csdn.net/In_engineer/article/details/126267048

http://t.zoukankan.com/lengjk-p-13172724.html

https://blog.csdn.net/pipisorry/article/details/21781111

这里的".*"中的"."代表的是匹配一切字符与此类似的有
 "s" 匹配所有空白字符(包括制表符); "S"匹配所有字符串
 "d" 匹配所有数字		"D"匹配所有非数字
 "*" 代表的是贪婪匹配模式意思为连续匹配到符合条件的最后一个,直至匹配到不符合条件的字符为止
 与此类似的有
 "?"只匹配到一个	"+"匹配到一个或者更多
 "*"的意思是0个或者所有
符号含义
.代表除换行符外的任意字符
*代表匹配零次或者多次
\这个就是转义字符,匹配符号的时候在符号前面加上这个
[^ ]匹配非单个空格,和*组合一起就代表匹配零个或者多个非空格字符串
. 匹配任意字符.
| 匹配表达式左边和右边的字符. 例如, “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”.
^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行.
把下划线换成括号
_+

\( \)
把括号标准化
[\(|(][ \t]*[\)|)]

\( \)
==合并上面两者==
_+|([\(|(][ \t]*[\)|)])

\( \)
删掉多余空行
(\r\n)+\r\n

\r\n
去除行尾多余空格和制表符
[ \t]+\r\n

\r\n
==合并上面两者==
([ \t]+|(\r\n)+)\r\n

\r\n
去掉选项(或题号)与选项内容之间的空白
(([A-Z]|[0-9]+)\.)[ \t\n]

\1
处理选项号和选项分离现象
([A-Z]\.)\r\n

\1
去掉我的答案,只保留正确答案
我的答案: .*(正确答案.+\r\n)

\1
去掉每道题最末尾的分
\r\n[0-9]+(.?[0-9]+)?分\r\n

\r\n
去除末尾答案解析
\r\n答案解析.*\r\n

\r\n
去掉判断题的选项
\r\nA.对\r\nB.错\r\n

\r\n
在选项前面加一个缩进
([A-Z])\.

\t\1.

问题:

notepad++替换正则表达式,替换目标为不符合表达式[ ]*

<A HREF="(.+)\r\n 的目标,这个正则标的是该怎么写

要替换不符合正则表达式 [ ]*<DT><A HREF="(.+)</A>\r\n 的目标,可以使用以下正则表达式:

cssCopy code
^(?!.*[ ]*<DT><A HREF="(.+)</A>\r\n).+$

这个正则表达式使用了负向前瞻(negative lookahead),它会匹配任何不包含 [ ]*<DT><A HREF="(.+)</A>\r\n 的行,然后将整行替换掉。具体来说:

  • ^ 匹配行的开头
  • (?!.*[ ]*<DT><A HREF="(.+)</A>\r\n) 是一个负向前瞻,它会查找这一行是否包含 [ ]*<DT><A HREF="(.+)</A>\r\n,如果包含则不匹配
  • .+ 匹配该行的所有字符
  • $ 匹配行的结尾

因此,将上面的正则表达式作为替换的目标,可以将不符合条件的行全部替换掉。