常用正则表达式.png
notepad++正则表达式查询示例
以如下文本内容为例,让我们以正则表达式的方法匹配每一行中的邮箱地址,即下面截图中的高亮部分内容
dsadass@qq.com 892372813892dads cat god dashsas dsdasdas sda qing da da dsdssss21188383_dddeeee@google.com jjkkkk dds 777&&&**8 _dssaaszhxiikqww_+3333ksdsd@163.com 9998899 dasds 737337&&&&9jk djkkjoooukk@tom.com ddss8888999dssds @@@@ asdaskjsaklk sadasdaskkk{{{{}}}}dsdsasa@outlook.com 9skdbqhe2y1jlansBuijkmmIOIOkk
匹配文本中的高亮部分.png
notepad++新建文本并拷贝如上文本内容,Ctrl+F打开查找窗口,查找模式勾选正则表达式,查找目标中输入文本\S+@[a-z0-9]+\.[a-z]+,然后点击在当前文件中查找,在下方橘色高亮内容即为匹配的内容。
正则表达式查询.gif
对应的匹配解析如下,可以对照上面列出的常用正则表达式字符进行理解,当然这个匹配的正则表达式并不是唯一解,你也可以尝试使用其他的正则表达式进行匹配查询。
查询正则表达式解析.png
notepad++正则表达式批量替换示例
仍然以上一节正则表达式查询示例中的文本内容为例,现在希望把@后的邮箱地址统一替换为outlook.com,而其余部分保持不变,我们可以利用替换功能,Ctrl+H打开(也可以通过菜单项搜索>替换来打开),查找目标输入(\S+@)[a-z0-9]+\.[a-z]+,替换为输入\1outlook.com,然后点击全部替换,我们可以看到所有的邮箱地址全部都替换为了outlook.com,而其他部分的内容保持不变。
我们发现(\S+@)[a-z0-9]+\.[a-z]+只是比之前多了一对(),它的意思匹配(pattern)中的pattern(也就是\S+@)并获取这一匹配的子字符串,在替换时\1就表示匹配的这部分字符串。
正则表达式替换.gif