如何在dbt-jinja中正确使用Python re模块的正则函数?
正确调用方法
dbt-jinja 中访问 Python 标准库模块需要通过 modules 前缀调用,re 模块的所有方法均挂载在 modules.re 命名空间下,你之前的写法缺失前缀,所以会报未定义错误。
正确写法示例:
{% set matcher = modules.re.match('Doug', 'Doug Timestamps') %}
额外注意事项
- 版本要求:该特性仅在 dbt Core v1.0.0 及以上版本可用,低于该版本的环境无法直接使用内置
re模块能力。 - 方法适配:Python 原生
re.match仅从字符串开头位置匹配规则,你示例中的目标字符串以Timestamps开头,用re.match匹配Doug会返回空值,如果需要匹配字符串任意位置的内容,建议改用re.search:
{% set matcher = modules.re.search('Doug', 'Timestamps Doug') %}
内容的提问来源于stack exchange,提问作者Anders Swanson
相关产品推荐
相关产品推荐

