我需要我的程序能够识别一个单词,即使这个单词的某些字母之间夹杂了一些字符。例如,如果给定的是“guitar”,我需要它能够识别出:“g#2f4f4f;uitar”。有什么快速的方法可以做到这一点吗?任何帮助都将不胜感激。
回答:
尝试使用正则表达式(这里有一个不错的网站)
def match_with_noise(word, noisy_word): return re.match("(.*)".join(word), noisy_word)
这会返回一个re.match对象,处理起来非常方便:
>>> match_with_noise("guitar", "g0923874uitar")<_sre.SRE_Match object; span=(0, 13), match='g0923874uitar'>
例如,使用.groups()
可以获取那些不应该存在的字符:
>>> match_with_noise("guitar", "g0923874uitar").groups()('0923874', '', '', '', '')