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\t 3423423987\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)
ZGVmIGNoZWNrX3RleHRfZm9yX3N0cmluZyh0ZXh0X3RvX3BhcnNlLCBzdHJpbmdfdG9fZmluZCk6CiAgICBpbXBvcnQgcmUKICAgIG1hdGNoZXMgPSBbXQogICAgcGF0dGVybiA9IHIiKD88IVxkXC4pKD86XGJ8Xyklcyg/OlxifF8pKD8hXC5cZCkiJXN0cmluZ190b19maW5kCiAgICByZXR1cm4gcmUuZmluZGFsbChwYXR0ZXJuLCB0ZXh0X3RvX3BhcnNlKQogICAgCmltcG9ydCByZQp3b3JkX3RvX21hdGNoID0gIjM0MjM0MjM5ODciCnBvc3NpYmxlX3dvcmRfbGlzdCA9IFsKICAgICAgICAgICAgICAgICAgICAiMzQyMzQyMzk4N18xIHRoZSBjYWtlIGlzIGEgbGllIiwgI01hdGNoCiAgICAgICAgICAgICAgICAgICAgIjM0MjM0MjM5ODdzZGdnIGNhbGwgbWUgSXNobWFlbCIsICAjTm90IGEgbWF0Y2gKICAgICAgICAgICAgICAgICAgICAiMzQyMzQyMzk4NyBwbGVhc2Ugc2lyLCBjYW4gSSBoYXZlIHNvbWUgbW9yZT8iLCNNYXRjaAogICAgICAgICAgICAgICAgICAgICIzNDIzNDIzOTg3IiwjTWF0Y2gKICAgICAgICAgICAgICAgICAgICAiMzQyMzQyMzk4NyAiLCNNYXRjaAogICAgICAgICAgICAgICAgICAgICIzNDIzNDIzOTg3XHQiLCNNYXRjaAogICAgICAgICAgICAgICAgICAgICJhZHNnc2R6Z3hkemcgYWRzZ3NkYWdcdDM0MjM0MjM5ODdcdCIsI01hdGNoCiAgICAgICAgICAgICAgICAgICAgIjEyMzM0MjM0MjM5ODciLCAjTm90IGEgbWF0Y2gKICAgICAgICAgICAgICAgICAgICAiQTM0MjM0MjM5ODciLCAjTm90IGEgbWF0Y2gKICAgICAgICAgICAgICAgICAgICAiMzQyMzQyMzk4Ny0xYVx0IiwjTWF0Y2gKICAgICAgICAgICAgICAgICAgICAiMzQyMzQyMzk4Ny4wIiwgI05vdCBhIG1hdGNoCiAgICAgICAgICAgICAgICAgICAgIjM0MjM0MjM5ODc0MzYzNTY0NSIgI05vdCBhIG1hdGNoCiAgICAgICAgICAgICAgICAgICAgXQoKcHJpbnQoIiVkIHdvcmRzIGluIHNhbXBsZSBsaXN0LiIlbGVuKHBvc3NpYmxlX3dvcmRfbGlzdCkpCnByaW50KCJPbmx5IDcgc2hvdWxkIG1hdGNoLiIpCm1hdGNoZXMgPSBjaGVja190ZXh0X2Zvcl9zdHJpbmcoIlxuIi5qb2luKHBvc3NpYmxlX3dvcmRfbGlzdCksIHdvcmRfdG9fbWF0Y2gpCnByaW50KCIlZCBtYXRjaGVkLiIlbGVuKG1hdGNoZXMpKQpwcmludChtYXRjaGVzKQ==