def check_text_for_string(text_to_parse, string_to_find):
    import re
    matches = []
    pattern = r"(?<!\d\.)(?:\b|_)%s(?:\b|_)(?!\.\d)"%string_to_find
    return re.findall(pattern, text_to_parse)
    
import re
word_to_match = "3423423987"
possible_word_list = [
                    "3423423987_1 the cake is a lie", #Match
                    "3423423987sdgg call me Ishmael",  #Not a match
                    "3423423987 please sir, can I have some more?",#Match
                    "3423423987",#Match
                    "3423423987 ",#Match
                    "3423423987\t",#Match
                    "adsgsdzgxdzg adsgsdag\t3423423987\t",#Match
                    "1233423423987", #Not a match
                    "A3423423987", #Not a match
                    "3423423987-1a\t",#Match
                    "3423423987.0", #Not a match
                    "342342398743635645" #Not a match
                    ]

print("%d words in sample list."%len(possible_word_list))
print("Only 7 should match.")
matches = check_text_for_string("\n".join(possible_word_list), word_to_match)
print("%d matched."%len(matches))
print(matches)