如何在Jinja中获取第三个下划线后的所有字符?
在Jinja中提取字符串第三个下划线后的全部内容
要提取第三个下划线之后的完整内容(包括后续含下划线的部分),不能只靠split('_')[3]获取单个元素,可通过分割后切片+重新拼接的方式实现:
解决方案代码
{{ hostname.split('_')[3:] | join('_') }}
示例验证
- 输入:
r_a_B_TEXAS→ 输出:TEXAS - 输入:
r_asda_Bads_DALLAS→ 输出:DALLAS - 输入:
r_asda_Bads_DISNEY_LAND→ 输出:DISNEY_LAND - 输入:
rdd_asda_Bads_Florida_MIAMI_NICE→ 输出:Florida_MIAMI_NICE
原理说明
split('_'):将目标字符串按下划线分割为列表,比如r_asda_Bads_DISNEY_LAND会被分割为['r', 'asda', 'Bads', 'DISNEY', 'LAND'][3:]:取列表中索引3及之后的所有元素(索引从0开始,对应第三个下划线后的内容),即['DISNEY', 'LAND']join('_'):将切片得到的子列表重新用下划线拼接,还原带下划线的完整内容
内容的提问来源于stack exchange,提问作者Joel Ventura Ortiz
相关产品推荐
相关产品推荐

