# Split rsplit and Regex

**URL:** <https://discourse.julialang.org/t/split-rsplit-and-regex/67536>\
**Category:** New to Julia\
**Tags:** regex\
**Created:** [September 1, 2021, 9:22pm UTC](https://discourse.julialang.org/t/split-rsplit-and-regex/67536 "2021-09-01T21:22:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![PharmCat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pharmcat/32/6953_2.png) [@PharmCat](https://discourse.julialang.org/u/PharmCat)\
**Post date:** [September 1, 2021, 9:22pm UTC](https://discourse.julialang.org/t/split-rsplit-and-regex/67536/1 "2021-09-01T21:22:21Z")

</div>

Hello!  
Its a bug of rsplit or a feature of split?

```julia
str = "abcdefg"
split(str, r"cd") #fine
rsplit(str, r"cd") #error

```

Trace:

```julia
ERROR: MethodError: no method matching findlast(::Regex, ::String)
Closest candidates are:
  findlast(::AbstractChar, ::AbstractString) at strings/search.jl:400
  findlast(::AbstractString, ::AbstractString) at strings/search.jl:363
  findlast(::Function, ::Union{AbstractString, AbstractArray}) at array.jl:2099
  ...
Stacktrace:
 [1] _rsplit(str::String, splitter::Regex, limit::Int64, keepempty::Bool, strs::Vector{SubString{String}})
   @ Base .\strings\util.jl:492
 [2] rsplit(str::String, splitter::Regex; limit::Int64, keepempty::Bool)
   @ Base .\strings\util.jl:479
 [3] rsplit(str::String, splitter::Regex)
   @ Base .\strings\util.jl:479
 [4] top-level scope
   @ none:1

```

Julia 1.6.2

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [September 1, 2021, 9:40pm UTC](https://discourse.julialang.org/t/split-rsplit-and-regex/67536/2 "2021-09-01T21:40:53Z")

</div>

I think it’s a missing method for `rsplit`, or rather for `findlast(::Regex, ::String)` which is called by `rsplit` and subsequently `findprev(::Regex, ::String, ::Int)`. I don’t know if PCRE (the regex library julia uses) has this function readily available. We call into the library for the `findfirst`/`split` version.

If you’d like to investigate further (you can find how `findnext` with regexes is implemented [here](https://github.com/JuliaLang/julia/blob/3aada5982c368f075dd0014dd9bdd5b8d2947b51/base/regex.jl#L393-L421)) or [open an issue about it](https://github.com/JuliaLang/julia/issues/new), that would be very much appreciated!
