I have the following solution:
str = "0e4f9a4fdcfb351397b65cdcabcd0673d768cf59"
patten = re.compile("\d(?=.*[a-z])[a-z\d]{4}\d")
searchObj = patten.findall(commit)
searchObj
['351397', '0673d7', '68cf59']
here (?=.*[a-z]) means "at least one letter".
but the result includes 351397, there is no letter at all.
Why did it get only numbers without the letter?