# String search()

**URL:** <https://discourse.julialang.org/t/string-search/40102>\
**Category:** New to Julia\
**Tags:** question, strings\
**Created:** [May 25, 2020, 2:34am UTC](https://discourse.julialang.org/t/string-search/40102 "2020-05-25T02:34:29Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![11133](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/11133/32/15147_2.png) [@11133](https://discourse.julialang.org/u/11133)\
**Post date:** [May 25, 2020, 2:34am UTC](https://discourse.julialang.org/t/string-search/40102/1 "2020-05-25T02:34:29Z")

</div>

Methods search() and contains() for strings existing??

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [May 25, 2020, 2:48am UTC](https://discourse.julialang.org/t/string-search/40102/2 "2020-05-25T02:48:52Z")

</div>

Yes, see e.g. `findfirst` and `occursin`.

---

<div class="post-metadata">

**Author:** ![11133](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/11133/32/15147_2.png) [@11133](https://discourse.julialang.org/u/11133)\
**Post date:** [May 25, 2020, 3:25am UTC](https://discourse.julialang.org/t/string-search/40102/3 "2020-05-25T03:25:41Z")

</div>

For example: contains(“ff”, “wawaffeses”)  
REPL write:  
Error:UndefVarError:contains not defined  
and  
search(“ff”, “wawaffeses”)  
REPL write:  
Error:UndefVarError:search not defined

---

<div class="post-metadata">

**Author:** ![anon94023334](https://avatars.discourse-cdn.com/v4/letter/a/e274bd/32.png) [@anon94023334](https://discourse.julialang.org/u/anon94023334)\
**Post date:** [May 25, 2020, 3:54am UTC](https://discourse.julialang.org/t/string-search/40102/4 "2020-05-25T03:54:44Z")

</div>

```julia
julia> occursin("ff", "waffles")
true

```

(Although I really hate that the needle is in first position here.)

---

<div class="post-metadata">

**Author:** ![11133](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/11133/32/15147_2.png) [@11133](https://discourse.julialang.org/u/11133)\
**Post date:** [May 25, 2020, 4:04am UTC](https://discourse.julialang.org/t/string-search/40102/5 "2020-05-25T04:04:25Z")

</div>

This is very nice)), but contains() and search() exist?

---

<div class="post-metadata">

**Author:** ![greg\_plowman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/greg_plowman/32/8100_2.png) [@greg\_plowman](https://discourse.julialang.org/u/greg_plowman)\
**Post date:** [May 25, 2020, 4:11am UTC](https://discourse.julialang.org/t/string-search/40102/6 "2020-05-25T04:11:09Z")

</div>

> [@anon94023334](#):
>
> (Although I really hate that the needle is in first position here.)

> [@11133](#):
>
> This is very nice)), but contains() and search() exist?

From Julia v1.5 news:  
New function `contains(haystack, needle)` and its one argument partially applied form have been added, it acts like `occursin(needle, haystack)`[#35031](https://github.com/JuliaLang/julia/issues/35031)

---

<div class="post-metadata">

**Author:** ![11133](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/11133/32/15147_2.png) [@11133](https://discourse.julialang.org/u/11133)\
**Post date:** [May 25, 2020, 4:23am UTC](https://discourse.julialang.org/t/string-search/40102/7 "2020-05-25T04:23:51Z")

</div>

Why my Julia 1.4.1 writes error? It is normal?

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [May 25, 2020, 6:12am UTC](https://discourse.julialang.org/t/string-search/40102/8 "2020-05-25T06:12:36Z")

</div>

Yes, as Greg says above, the `contains` function was added in Julia 1.5 (not released yet), so is not available in 1.4.1. As others have pointed out, you can use `occursin`, which does the same thing, just with a different ordering of input arguments.

---

<div class="post-metadata">

**Author:** ![11133](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/11133/32/15147_2.png) [@11133](https://discourse.julialang.org/u/11133)\
**Post date:** [May 25, 2020, 6:40am UTC](https://discourse.julialang.org/t/string-search/40102/9 "2020-05-25T06:40:44Z")

</div>

Thanks!!
