在Python find()中使两个字符等效

2024-03-29 02:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,我想使用Python在一个文本块中搜索'tune yards',该文本块可能会说'tune-yards'(带连字符),也可能会说'tune yards'(不带连字符)。我想两者都被认为是匹配的。我正在使用find()函数。有没有一个好的Pythonic方法来将-和空间视为一个相同的语句,而不是仅仅堆叠elif语句?你知道吗

像这样的:(我知道这样不行:p)

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

Tags: 方法函数文本ifas空间语句find
2条回答
>>> 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测试结果。你知道吗

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

相关问题 更多 >