Notepad ++一些奇怪的正则表达式

时间:2017-03-12 16:18:06

标签: regex notepad++

我想在文本文件中删除一些内容,但手动执行它会花费太多工作,我认为我需要一个正则表达式

Myname:Wow11:myemail@bsomeemail.com:2017-02-11:TT:D:无:John Doe

我想删除除Wow11以外的所有内容:myemail@someemail.com

怎么可能?非常感谢你

3 个答案:

答案 0 :(得分:1)

正则表达式查找/替换如下:

  • 打开替换对话框
  • 查找内容: ^[^:]+:(([^:]+:?){2}):.+(\R)
  • 替换为: \1\3
  • 检查正则表达式
  • 点击替换或全部替换

<强>说明
在这里,我们尝试确定不是:后跟:的内容的序列,这是[^:]+:应该完成的内容。

  • 忽略linestart ^后的第一个此类序列
  • 第二个和第三个这样的序列存储在\1中,以便通过将([^:]+:?){2}放入另一对括号中来重复使用
  • 在第三个这样的序列(.+)之后的所有内容再次被忽略
  • 忽略此处表示:未捕获,未用于替换
  • \R与换行符相匹配,并且在替换为\3
  • 期间再次捕获并重新使用
  • 我们使用\R.+来阻止替换所有替换所有行后,再次保持匹配并再次替换

答案 1 :(得分:0)

在Notepad ++中,从上面的示例文本字符串中删除不需要的文本,您将执行以下操作:

  • 选择搜索
  • 选择替换
  • 选择正则表达式的搜索模式

找到:

\S+:(\S+:\S+@\S+\.com).*

替换为:

\1

答案 2 :(得分:0)

只是把我的两分钱放在:

^[^:]+:([^:]+:[^:]+).+$

查看上面的表达式,启用MULTILINE模式并将找到的匹配项替换为\1,请参阅a demo on regex101.com