# Search String in Ansible

**URL:** <https://forum.ansible.com/t/search-string-in-ansible/26304>\
**Category:** Ansible Developer\
**Created:** [December 15, 2017, 4:21pm UTC](https://forum.ansible.com/t/search-string-in-ansible/26304 "2017-12-15T16:21:48Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Saurabh](https://avatars.discourse-cdn.com/v4/letter/s/ee7513/32.png) [@Saurabh](https://forum.ansible.com/u/Saurabh)\
**Post date:** [December 15, 2017, 4:21pm UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/1 "2017-12-15T16:21:48Z")

</div>



---

<div class="post-metadata">

**Author:** ![sivel](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/sivel/32/1198_2.png) [@sivel](https://forum.ansible.com/u/sivel)\
**Post date:** [December 15, 2017, 4:30pm UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/2 "2017-12-15T16:30:19Z")

</div>

`match` matches from the start of the string, so your examples would only match if the string started with `are` or `you`. So effectively it is the equivalent of `^are` or `^you` in regex terms.

You likely want `search` instead of `match`, which will search anywhere in the string.

---

<div class="post-metadata">

**Author:** ![Saurabh](https://avatars.discourse-cdn.com/v4/letter/s/ee7513/32.png) [@Saurabh](https://forum.ansible.com/u/Saurabh)\
**Post date:** [December 15, 2017, 4:47pm UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/3 "2017-12-15T16:47:16Z")

</div>



---

<div class="post-metadata">

**Author:** ![ljenkin](https://avatars.discourse-cdn.com/v4/letter/l/cc9497/32.png) [@ljenkin](https://forum.ansible.com/u/ljenkin)\
**Post date:** [December 16, 2017, 9:51pm UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/4 "2017-12-16T21:51:34Z")

</div>

You shouldn’t have jinja templating in a when clause. try something more simpler like the following, the search filter already returns a boolean, don’t need to test twice.

- debug:  
msg: “hi how are ?”  
when: my\_list | search(‘are’)

- debug:  
msg: "hi how you ? "  
when: my\_list | regex\_search(‘yolo’)

Also check your inventory contains localhost.

---

<div class="post-metadata">

**Author:** ![Saurabh](https://avatars.discourse-cdn.com/v4/letter/s/ee7513/32.png) [@Saurabh](https://forum.ansible.com/u/Saurabh)\
**Post date:** [December 17, 2017, 8:11am UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/5 "2017-12-17T08:11:12Z")

</div>

Perfect it’s working.

But here it just giving true or false.

In case if I want to fetch the value then how can I do?

---

<div class="post-metadata">

**Author:** ![j.r.hawkesworth](https://avatars.discourse-cdn.com/v4/letter/j/a3d4f5/32.png) [@j.r.hawkesworth](https://forum.ansible.com/u/j.r.hawkesworth)\
**Post date:** [December 23, 2017, 9:49am UTC](https://forum.ansible.com/t/search-string-in-ansible/26304/6 "2017-12-23T09:49:57Z")

</div>

When needs either a true or false response.

Have a look at regex\_replace if you want to return values.

Jon
