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
相关产品推荐
相关产品推荐

