如何在字符串中一秒钟后删除行的其余部分?

如何在字符串中一秒钟后删除行的其余部分?
dagaga2.com:8ddagd1:dbcc:eLXLBdRdd?a'badagahaha
dadadagh.com:299515:dgan6hhna:992969199269196
dad2agh.com:299515:dganhna:992969199269196
dadada5uwuwgh.com:299ju515:dgaenhna:9929691998d269196
dada12d6agh.com:29951ha165:dgaja2nhn126a:992969117123d72199269196

如何删除
所有行中第二个冒号 (:) 后面的所有内容?
就像这样?

dagaga2.com:8ddagd1:
text:text:text:empty
text:text:text:empty

答案1

与 Frank Thomas 的解决方案相比,这是一个更通用的解决方案:

查找内容:(([^:]*\:){2}).*
替换为:\2

这将删除第二次之后的所有内容:

答案2

在查找和替换 GUI 中,选中 复选框Regular expression,然后输入查询,例如:

找什么:(^\S*)(\:)(\S*)(\:)(.*)$

用。。。来代替:\1\2

这将替换dagaga2.com:8ddagd1:dbcc:eLXLBdRdd?a'badagahahadagaga2.com:8ddagd1:

在此处输入图片描述

请注意,必须使用:前导反斜杠对字符进行转义。否则正则表达式解析器将无法正确读取它们。

你在这里做的事情是,在字符串中指定捕获组,括号。然后在末尾添加(.*),以获取所有剩余的字符串,无论它是什么。

replace 语句是反向引用,意思是“只给我前两个捕获组”。捕获组由括号创建,这就是为什么我们必须将要查找的字符串放在括号内。

相关内容