首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试列表中具有特殊字符的子字符串

测试列表中具有特殊字符的子字符串
EN

Stack Overflow用户
提问于 2020-02-16 19:49:12
回答 2查看 65关注 0票数 0

我有一个包含一些应用程序景观名称的列表,我必须在Jinja2中寻找一个具有特殊字符的特定应用程序。

landscape_list:"cmdb:app1景观“,"cmdb:app2 (ex app3)景观”,"cmdb:app4景观“

app_to_look:"app2 (除app3外)“

我试图使用这段代码来测试列表:

代码语言:javascript
复制
{{landscape_list | select('search',land_key) | list | count > 0}}

但是,当我尝试测试"app2 (ex app3)“时,总是得到0。

我认为这个问题与()这样的特殊字符有关。

是否可以在jinja2中查看特定应用程序的列表?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-21 00:57:52

最后我使用了类似的方法。我没有使用搜索,而是使用contains作为搜索方法。

代码语言:javascript
复制
{{completed_list | select('contains',solution_search) | list | count > 0}}

solution_search包含了我正在寻找的东西的全名。

代码语言:javascript
复制
{%-set solution_search = env_key ~' '~env_server_key ~' TEST'-%}

其中,env_server_key是可以包含特殊字符的应用程序名称,而env_key是应用程序环境。

票数 0
EN

Stack Overflow用户

发布于 2020-02-16 21:47:25

Q:“这个问题与()这样的特殊字符有关。”

答:是的。括号必须在regex中转义。例如

代码语言:javascript
复制
    - set_fact:
        land_key: 'app2 \(ex app3\)'
    - debug:
        msg: "{{ landscape_list|select('search', land_key)|list }}"
    - debug:
        msg: "{{ landscape_list|select('search', land_key)|list|length }}"
    - debug:
        msg: One or more items match the searched pattern.
      when: landscape_list|select('search', land_key)|list|length > 0

代码语言:javascript
复制
    "msg": [
        "cmdb:app2 (ex app3) landscape"
    ]

    "msg": "1"

    "msg": "One or more items match the searched pattern."
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60252567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档