# Replace behaving strange?

**URL:** https://discourse.julialang.org/t/replace-behaving-strange/20008
**Category:** General Usage
**Created:** [January 23, 2019, 9:52pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008 "2019-01-23T21:52:05Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![OvidiusCicero](https://avatars.discourse-cdn.com/v4/letter/o/73ab20/32.png) [@OvidiusCicero](https://discourse.julialang.org/u/OvidiusCicero)
#### Post date: [January 23, 2019, 9:52pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/1 "2019-01-23T21:52:05Z")

</div>

Initialize string array

```
s = SubString{String}["Julia", "uses", "multiple", "dispatch", "as", "a", "paradigm,", "making", "it", "easy", "to", "express", "many", "object-oriented", "and", "functional", "programming", "patterns.", "The", "standard", "library", "provides", "..."]

```

I try to replace a certain character in all strings of the array

```
replace.(data, "." => "")

```

yields an error

```julia
ERROR: DimensionMismatch("arrays could not be broadcast to a common size")
Stacktrace:
 [1] _bcs1 at .\broadcast.jl:439 [inlined]
 [2] _bcs at .\broadcast.jl:433 [inlined]
 [3] broadcast_shape at .\broadcast.jl:427 [inlined]
 [4] combine_axes at .\broadcast.jl:422 [inlined]
 [5] instantiate at .\broadcast.jl:266 [inlined]
 [6] materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(replace),Tuple{Array{SubString{String},1},Array{String,1}}}) at .\broadcast.jl:748
 [7] top-level scope at none:0

```

but

```
(t->replace(t, "a"=>"x")).(s)

```

works as expected:

```julia
23-element Array{String,1}:
 "Julix"
 "uses"
 "multiple"
 "dispxtch"
 "xs"
 "x"
 "pxrxdigm,"
 "mxking"
 "it"
 "exsy"
 "to"
 "express"
 "mxny"
 "object-oriented"
 "xnd"
 "functionxl"
 "progrxmming"
 "pxtterns."
 "The"
 "stxndxrd"
 "librxry"
 "provides"
 "..."

```

I expected it to automatically broadcast it over the array. Why doesn’t it work like that?

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [January 23, 2019, 9:55pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/2 "2019-01-23T21:55:47Z")

</div>

You need to do `replace.(s, ("." => "",))` The `Pair` is not interpreted as a scalar w.r.t broadcasting.

---

<div class="post-metadata">

### Author: ![OvidiusCicero](https://avatars.discourse-cdn.com/v4/letter/o/73ab20/32.png) [@OvidiusCicero](https://discourse.julialang.org/u/OvidiusCicero)
#### Post date: [January 23, 2019, 9:56pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/3 "2019-01-23T21:56:33Z")

</div>

thanks!

---

<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: [January 23, 2019, 11:01pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/4 "2019-01-23T23:01:08Z")

</div>

> [@kristoffer.carlsson](#):
>
> The `Pair` is not interpreted as a scalar w.r.t broadcasting.

It probably should be?

---

<div class="post-metadata">

### Author: ![Azamat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/azamat/32/6892_2.png) [@Azamat](https://discourse.julialang.org/u/Azamat)
#### Post date: [January 24, 2019, 1:53am UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/5 "2019-01-24T01:53:45Z")

</div>

I can prepare PR if there is support for broadcasting `Pair ` as a scalar.

---

<div class="post-metadata">

### Author: ![jablauvelt](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jablauvelt/32/8792_2.png) [@jablauvelt](https://discourse.julialang.org/u/jablauvelt)
#### Post date: [May 28, 2019, 10:01pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/6 "2019-05-28T22:01:35Z")

</div>

I’m a nobody in terms of development, but as a new user who found the lack of broadcasting to be confusing, I support it!

Especially since the following works without needing to make the Pair into a tuple:

`@. replace(["test", "test2"], r"[es]" => "")`

---

<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 31, 2019, 5:00pm UTC](https://discourse.julialang.org/t/replace-behaving-strange/20008/7 "2019-05-31T17:00:19Z")

</div>

[https://github.com/JuliaLang/julia/pull/32209](https://github.com/JuliaLang/julia/pull/32209)
