Notepad ++正则表达式

0x00 背景

      有时需要使用正则表达式进行一些复杂的匹配,以便快速完成操作,以此做笔记。以便后续翻阅。

0x01 常见表达式

.匹配任何一个字符,每行逐一匹配,而不匹配换行序列(\r或\n)。单独. 将匹配每行的每一个字符

* 其左边的字符被匹配任意次(0次或者多次). 例如 "be*" 匹配 "b", "be" 或者 "bee".

+ 其左边的字符被匹配至少一次(1次或者多次). 例如 "be+" 匹配 "be" 或者 "bee" 但是不匹配 "b".

? 其左边的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 但是不匹配 "bee".

^ 其右边的表达式被匹配在一行的开始. 例如 "^A" 仅仅匹配以 "A" 开头的行.

$ 其左边的表达式被匹配在一行的结尾. 例如 "e$" 仅仅匹配以 "e" 结尾的行.

| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".

[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意数字;[a-z],从a to到任何字符z;

[^] 匹配列表之外的任何单个字符. 例如, "[^ab]" 匹配 "a" 和 "b" 以外的字符; "[^0-9]" 匹配任意非数字字符; [^A-Za-z]表示除字母字符之外的任何字符。

[[:name:]]或[[:☒:]]⇒整个名为name的字符类。 对于许多人来说,还有一个单字母的short”类名☒。 请注意:[:name:]和[:☒:]必须在字符类[...]中才能具有特殊含义。

short

full name

description

equivalent character class

alnum

letters and digits

alpha

letters

h

blank

spacing which is not a line terminator

[\t\x20\xA0]

cntrl

control characters

[\x00-\x1F\x7F\x81\x8D\x8F\x90\x9D]

d

digit

digits

graph

graphical character, so essentially any character except for control chars, \0x7F, \x80

l

lower

lowercase letters

print

printable characters

[\s[:graph:]]

punct

punctuation characters

[!"#$%&'()*+,\-./:;<=>?@\[\\\]^_{

s

space

whitespace (word or line separator)

[\t\n\x0B\f\r\x20\x85\xA0\x{2028}\x{2029}]

u

upper

uppercase letters

unicode

any character with code point above 255

[\x{0100}-\x{FFFF}]

w

word

word characters

[_\d\l\u]

xdigit

hexadecimal digits

[0-9A-Fa-f]

\☒ ⇒这样,转义符。如要搜索\,则输入\\   。要搜索[ , 则输入\[       。 其中

\d 匹配任意数字,相当于:[0-9]。 \D   匹配非任意数字的任意字符,相当于[^[0-9]]

\l  匹配任意小字母,notepad++ 需要勾选【匹配大小写】,相当于[a-z]。 \L  匹配非小写字母的任意字符,相当于[^[a-z]]

\u 匹配任意大字母,notepad++ 需要勾选【匹配大小写】,相当于[A-Z]。 \U  匹配非小写字母的任意字符,相当于[^[A-Z]

\s 匹配空格(单词或行分隔符),相当于[[:space:]] 。  \S  匹配所有非空格(单词或行分隔符),相当于[^[:space:]]

\w 匹配任意单词,即除了标点和空格的所有字符。   \W  匹配除了字母数字外的所有标点、空格的字符

\h 匹配水平空间每一行当中的字符为空的地方,可以理解为空格。\H 匹配非水平空间

\v 匹配垂直空间每一行当中的字符为空的地方,可以理解为空格。\H 匹配非垂直空间

\t 制表符.

\n 新行.

() 影响表达式匹配的顺序,并且用作表达式的分组标记.

0x02 综合应用

  •               #此处是空白
  •              其他部门的日常咨询。# 此处行的开头是空白,但中间存在内容

以上是空白行已经开头是空白的两行  || 要查找空白行或者开行是空格,则输入 ^\s  || 要查找空白行,则输入:\r\n\r\n,  选择替换 为空,即可删除完全空白的行。

要查找每行的行首 || 要定位在每行的行首,则输入:^   即可定位在每行的行首。

要查找每行的行尾 || 要定位在每行的行尾,则输入:$   即可定位在每行的行尾。

4.111. [高风险] 越权访问    17   ||  要查找4.111. [, 则输入:^\d.*\[    选择替换,即可将4.111. [替换为空。

4.111. [高风险] 越权访问    17   ||要查找  高风险]   则输入:...]\s    选择替换,即可将 高风险]  替换为空。

4.111. [高风险] 越权访问   17   ||  要查找4.111. [高风险]  则输入:^\d.*\[...]\s  选择替换,即可将4.111. [高风险]  替换为空。

4.111. [高风险] 越权访问   17   ||  要查找   17  则输入:\s\d+$   选择替换,即可将   17 替换为空。

4.111. [高风险] 越权访问   17   ||   要查找 ] 越权访问   17 则输入:].*  选择替换,即可将 ] 越权访问   17  替换为空。

  • 4.111. [高风险] 越权访问   17   ||  要保留 高|中|低, 则输入:[^\高|\中|\低|\n]  选择替换,即可只保留高、中、低字符  。
  • 4.111. [高风险] 越权访问   17   ||  要保留 越权访问,则输入:.*]\s|\s\d+$   选择替换,即可只保留越权访问字符  。

0x03 参考文章:

https://npp-user-manual.org/docs/searching/#extended-search-mode

https://blog.csdn.net/yuyehui/article/details/104332359

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Notepad中使用正则表达式有多种常见案例。首先,你可以在Notepad中使用正则表达式进行查找和替换操作。通过点击菜单栏中的"编辑",选择"查找"或"替换",然后在查找或替换的输入框中勾选"正则表达式"选项,就可以使用正则表达式进行查找或替换了。例如,如果你想查找一个字符串中的所有单词,你可以使用正则表达式\w+来匹配一个或多个字母数字字符。 另外,Notepad还支持使用正则表达式进行匹配文本的提取。你可以通过点击菜单栏中的"编辑",选择"查找",然后在查找的输入框中输入正则表达式,点击"查找全部"按钮,就可以找到所有匹配的文本。例如,如果你想提取一个字符串中所有的小写字母,你可以使用正则表达式[a-z]来匹配。 需要注意的是,Notepad中的正则表达式功能并不完善,无法完全达到使用Python编写re.findall()的效果。在某些情况下,Notepad正则表达式查找功能可能并不理想,无法实现你期望的结果。因此,如果需要更复杂的正则表达式操作,建议使用专门的正则表达式工具或编程语言来完成。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [notepad++正则表达式的使用](https://blog.csdn.net/In_engineer/article/details/126267048)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [notepad++正则表达式使用](https://blog.csdn.net/pipisorry/article/details/21781111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值