@@ -274,15 +274,6 @@ julia> rpad("March",20)
274
274
"""
275
275
rpad (s, n:: Integer , p= " " ) = rpad (string (s),n,string (p))
276
276
277
- # splitter can be a Char, Vector{Char}, AbstractString, Regex, ...
278
- split (str:: T , splitter; limit:: Integer = 0 , keep:: Bool = true ) where {T<: SubString } =
279
- _split (str, splitter, limit, keep, T[])
280
- split (str:: T , splitter:: Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}} ;
281
- limit:: Integer = 0 , keep:: Bool = true ) where {T<: SubString } =
282
- _split (str, occursin (splitter), limit, keep, T[])
283
- split (str:: T , splitter:: Char ; limit:: Integer = 0 , keep:: Bool = true ) where {T<: SubString } =
284
- _split (str, equalto (splitter), limit, keep, T[])
285
-
286
277
"""
287
278
split(s::AbstractString, [chars]; limit::Integer=0, keep::Bool=true)
288
279
@@ -307,17 +298,18 @@ julia> split(a,".")
307
298
"rch"
308
299
```
309
300
"""
310
- split
301
+ function split end
311
302
312
303
split (str:: T , splitter;
313
304
limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
314
- _split (str, splitter, limit, keep, SubString{T}[])
305
+ _split (str, splitter, limit, keep, T <: SubString ? T[] : SubString{T}[])
315
306
split (str:: T , splitter:: Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}} ;
316
307
limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
317
- _split (str, occursin (splitter), limit, keep, SubString{T}[])
308
+ _split (str, occursin (splitter), limit, keep, T <: SubString ? T[] : SubString{T}[])
318
309
split (str:: T , splitter:: Char ;
319
310
limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
320
- _split (str, equalto (splitter), limit, keep, SubString{T}[])
311
+ _split (str, equalto (splitter), limit, keep, T <: SubString ? T[] : SubString{T}[])
312
+
321
313
function _split (str:: AbstractString , splitter, limit:: Integer , keep_empty:: Bool , strs:: Array )
322
314
i = start (str)
323
315
n = endof (str)
343
335
# a bit oddball, but standard behavior in Perl, Ruby & Python:
344
336
split (str:: AbstractString ) = split (str, _default_delims; limit= 0 , keep= false )
345
337
346
- rsplit (str:: T , splitter; limit:: Integer = 0 , keep:: Bool = true ) where {T<: SubString } =
347
- _rsplit (str, splitter, limit, keep, T[])
348
-
349
338
"""
350
339
rsplit(s::AbstractString, [chars]; limit::Integer=0, keep::Bool=true)
351
340
@@ -374,14 +363,16 @@ julia> rsplit(a,".";limit=2)
374
363
"h"
375
364
```
376
365
"""
366
+ function rsplit end
367
+
377
368
rsplit (str:: T , splitter; limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
378
- _rsplit (str, splitter, limit, keep, SubString{T}[])
369
+ _rsplit (str, splitter, limit, keep, T <: SubString ? T[] : SubString{T}[])
379
370
rsplit (str:: T , splitter:: Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}} ;
380
- limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
381
- _rsplit (str, occursin (splitter), limit, keep, SubString{T}[])
371
+ limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
372
+ _rsplit (str, occursin (splitter), limit, keep, T <: SubString ? T[] : SubString{T}[])
382
373
rsplit (str:: T , splitter:: Char ;
383
- limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
384
- _rsplit (str, equalto (splitter), limit, keep, SubString{T}[])
374
+ limit:: Integer = 0 , keep:: Bool = true ) where {T<: AbstractString } =
375
+ _rsplit (str, equalto (splitter), limit, keep, T <: SubString ? T[] : SubString{T}[])
385
376
386
377
function _rsplit (str:: AbstractString , splitter, limit:: Integer , keep_empty:: Bool , strs:: Array )
387
378
i = start (str)
0 commit comments