之前:
c3a848415acf99bd656edb67fe6f4473 MD5 : d7Sanne1949
8c20ef279947aa107e6e8043a3cb0975 MD5 : b0angela
1edd31297ccb89b719e998e11b0f14d1 MD5 : 6dviv13
ed3fcef597fd4f33cd2785f31a992bcf MD5 : 9barmagh98
2d078a00ce2cf322948d87be7cbe7979 MD5 : 13tmart123
之后:
d7Sanne1949
b0angela
6dviv13
9barmagh98
13tmart123
如何删除c5a848415acf99bd656edb67fe6f4473 MD5:,8c20ef279947aa107e6e8043a3cb0975 MD5等?
答案 0 :(得分:1)
Java示例:
String s = "c3a848415acf99bd656edb67fe6f4473 MD5 : d7Sanne1949";
没有正则表达式:
System.out.println(s.substring(39));
或(根据肯特的评论):
System.out.println(s.split(" ")[3]);
使用正则表达式:
System.out.println(s.replaceAll(".* MD5 : ", ""));
或
System.out.println(s.replaceAll("[0-9|a-f]+ MD5 : ", ""));
或
System.out.println(s.replaceAll("[0-9|a-f]{32} MD5 : ", ""));
答案 1 :(得分:0)
您的输入看起来像是以空格分隔,您想要输出最后一件事,并且您有一个包含许多这样的行的文件,其中一些不具有您想要输出的文本。因此,使用替换和捕获组,这里是一个正则表达式:
s/[^ ]+ MD5 : (.+)/\1/
(但是,应该注意的是,使用字符串拆分执行此操作要简单得多。)
这里有一些Python代码打开文件并在每一行上运行正则表达式,打印出该行的最后一位:
import re
my_matcher = re.compile(r"[^ ]+ MD5 : (.+)")
def print_extraction(target_string):
match_result = my_matcher.match(target_string)
if match_result:
print match_result.group(1)
target_file = "my_md5s.txt"
with open(target_file) as f:
for line in f:
print_extraction(line)