我需要删除橙色后冒号之后的所有内容
示例:
apple:orange:banana:grapes:
成为:
apple:orange
为此,我查找了一百万个不同的参考文献,却找不到解决方案。
当前在Notepad ++中使用“查找/替换”功能进行此操作。
答案 0 :(得分:1)
查找内容:(^[a-z]+:[a-z]+).*$
(^[a-z]+:[a-z]+)
第一个捕获组。匹配字符串开头的字母字符,冒号,字母字符。.*$
匹配所有内容,直到字符串末尾。 替换为:\1
\1
替换为捕获的第一组。您当然可以使表达式更笼统:
查找内容:(^[^:]+:[^:]+).*$
(^[^:]+:[^:]+)
捕获组。匹配字符串开头的冒号,冒号和冒号以外的其他任何字符。.*$
匹配所有内容,直到字符串末尾。 替换为:\1
\1
替换为捕获的第一组。如下面的评论中revo所指出的那样,在记事本++中使用上述模式时,应禁用matches newline
选项。
答案 1 :(得分:1)
如果我对您的理解正确,则可以使用插件ConyEdit来执行此操作。您可以使用其命令cc.dac <nth>/<regex>/[<mode>] [-options]
。 cc.dac
的意思是:在列之后删除。
例如:
在后台运行ConyEdit的情况下,复制下面的文本和命令行,然后粘贴:
apple:orange:banana:grapes:
cc.dac 2/:/ -d
答案 2 :(得分:0)
文件有多大?
如果它是一个小文件,您可能可以编写一个简单的代码,例如遵循Java中的代码片段。大多数编程语言将支持此类操作。
String input = "apple:orange:banana:grapes:";
String[] arrOfStr = input.split(":");
int index = arrOfStr.indexOf("orange");
String[] arrOfStrSub = Arrays.copyOf(arrOfStr, 0, index);
String output = StringUtils.join(arrOfStrSub, ':');