You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中能否使用match case匹配字符串中的子串?

Python中用match case匹配子串的方法

首先明确:你给出的示例代码无法实现子串匹配——因为当前的case分支是判断整个字符串是否和给定字符串完全相等。比如你的mystring = "xmas holidays",既不等于"holidays"也不等于"workday",所以两个case都不会触发,程序会直接跳过所有分支。

如果想用match case判断字符串是否包含某个子串,需要借助**case的守卫条件(if从句)**来实现,示例代码如下:

mystring = "xmas holidays"
match mystring:
    case _ if "holidays" in mystring:
        print(True)
    case _ if "workday" in mystring:
        print(False)
    case _:
        # 处理既不包含的情况
        print("Neither substring found")

关键说明:

  • _是通配符,用于匹配任意输入值;
  • 后面的if "子串" in mystring是守卫条件,只有当子串存在于目标字符串中时,才会进入该case分支;
  • match case是顺序匹配的,一旦某个case的条件满足,就会执行对应逻辑并跳出match结构,不会触发多个case分支。

内容的提问来源于stack exchange,提问作者Soop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:45:36