例如,我想使用Python在一块可能说'tune yards'(带连字符)而可能说'tune-yards'(无)的文本块中搜索'tune yards'。我希望两者都被视为比赛。我正在使用find()函数。有没有一种很好的Python方式将-和空格视为一模一样,而不是仅堆叠elif语句?

像这样的东西:(我知道这不起作用:P)

treating '-' as ' ':
    if blockOfText.find('tune yards') > -1:
        do something

最佳答案

>>> re.search('tune[ -]yards', '58 tune yards of music')
<_sre.SRE_Match object at 0x1ad68b8>
>>> re.search('tune[ -]yards', '35 tune-yards of trombone')
<_sre.SRE_Match object at 0x1ad6988>


并且match对象始终为true(其他可能的返回值为None),因此可以通过if测试结果。

10-04 21:15