在 Python find() 调用中使两个字符相等

发布于 2024-12-12 20:02:07 字数 381 浏览 2 评论 0原文

例如,我想使用 Python 在可能显示 'tune-yards' (带有连字符)的文本块中搜索 'tuneyards' ,并且它可能会说“调码”(没有)。我希望两者都被视为匹配。我正在使用 find() 函数。有没有一种好的 Pythonic 方法将 - 和空格视为同一个,而不是仅仅堆叠 elif 语句?

像这样的东西:(我知道这行不通:P)

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

Using Python, I want to search for, for example, 'tune yards' in a block of text that may say 'tune-yards' (with a hyphen) and it may say 'tune yards' (without). I want both to be considered matches. I'm using the find() function. Is there a good Pythonic way to treat - and spaces as one and the same, instead of just stacking elif statements?

Something like this: (I know this doesn't work :P)

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅忆 2024-12-19 20:02:08
>>> 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 测试结果。

>>> 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>

And match objects are always true (with the other possible returned value being None), so the result can be tested via if.

故事↓在人 2024-12-19 20:02:08
if (blockOfText.find('tune yards') + blockOfText.find('tune-yards'))  > -1:
    do something
if (blockOfText.find('tune yards') + blockOfText.find('tune-yards'))  > -1:
    do something
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文