Regex 如何从字符串中删除第一个字符?
之前:Regex 如何从字符串中删除第一个字符?,regex,Regex,之前: c3a848415acf99bd656edb67fe6f4473 MD5 : d7Sanne1949 8c20ef279947aa107e6e8043a3cb0975 MD5 : b0angela 1edd31297ccb89b719e998e11b0f14d1 MD5 : 6dviv13 ed3fcef597fd4f33cd2785f31a992bcf MD5 : 9barmagh98 2d078a00ce2cf322948d87be7cbe7979 MD5 : 13tmart123
c3a848415acf99bd656edb67fe6f4473 MD5 : d7Sanne1949
8c20ef279947aa107e6e8043a3cb0975 MD5 : b0angela
1edd31297ccb89b719e998e11b0f14d1 MD5 : 6dviv13
ed3fcef597fd4f33cd2785f31a992bcf MD5 : 9barmagh98
2d078a00ce2cf322948d87be7cbe7979 MD5 : 13tmart123
之后:
d7Sanne1949
b0angela
6dviv13
9barmagh98
13tmart123
如何删除c3a848415acf99bd656edb67fe6f4473 MD5:、8c20ef279947aa107e6e8043a3cb0975 MD5等?您的输入看起来像是以空格分隔的,您希望最后一件事情被输出,并且您有一个包含许多这样的行的文件,其中一些没有您想要输出的文本。因此,使用替换和捕获组,这里有一个正则表达式:
s/[^ ]+ MD5 : (.+)/\1/
(不过,应该注意的是,使用字符串拆分进行此操作要简单得多。)
下面是一些Python代码,用于打开文件并在每行上运行regex,打印出行的最后一位:
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)
Java示例:
String s = "c3a848415acf99bd656edb67fe6f4473 MD5 : d7Sanne1949";
- 不带正则表达式:
System.out.println(s.substring(39));
或者(根据肯特的评论):System.out.println(s.replaceAll(".* MD5 : ", ""));
- 使用正则表达式:
System.out.println(s.substring(39));
或 或System.out.println(s.replaceAll(".* MD5 : ", ""));
System.out.println(s.replaceAll("[0-9|a-f]{32} MD5 : ", ""));