python - 有没有办法在匹配案例语句中使用 endswith/startswith?

标签 python match case

<分区>

有没有办法像下面这样使用匹配大小写来选择字符串结尾/开头?

match text_string:
  case 'bla-bla':
    return 'bla'
  case .endswith('endofstring'):
    return 'ends'
  case .startswith('somestart'):
    return 'start'

最佳答案

你很接近。你想要一个有条件的 guard 在一个模式上,否则匹配任何东西。

match text_string:
  case 'bla-bla':
    return 'bla'
  case s if s.endswith('endofstring'):
    return 'ends'
  case s if s.startswith('somestart'):
    return 'start'

这对以下内容没有太大帮助。

if text_string == 'bla-bla':
  return 'bla'
elif text_string.endswith('endofstring'):
  return 'ends'
elif text_string.startswith('somestart'):
  return 'start'

除非您还使用了匹配 并且想要区分两个在其他方面相同的模式。

关于python - 有没有办法在匹配案例语句中使用 endswith/startswith?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74103649/

相关文章:

python - 如何在django中调用 View 文件中的模型函数

python - flask 教程 - "Attribute Error"

python - 在 jinja2 括号中四舍五入

python - 如何匹配 pandas DataFrame 中的多列 "interval"?

Android RelativeLayout 和 layout_width ="match_parent"的 child

Mysql:按多个字段对数据进行分组

python - Dask DataFrame 聚合至中位数

compiler-errors - ')' 标记之前的预期主要表达式,切换案例

sql - WHERE 子句中是否可以有 CASE WHEN THEN SELECT

java - 如何使用正则表达式匹配所有数字字符和一些单个字符