This works for me.
library(stringr)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df <- data.frame(A = c(1,2,3),
B = c("Stag White", "Blue", "Color"),
C = c("play White", "black White blue", "white"),
D = c("green", "yellow", "WhitehallWhite"), stringsAsFactors = FALSE)
df
#> A B C D
#> 1 1 Stag White play White green
#> 2 2 Blue black White blue yellow
#> 3 3 Color white WhitehallWhite
df2 <- df %>% mutate_if(is.character, str_replace_all, pattern = ".*White.*", "White")
df2
#> A B C D
#> 1 1 White White green
#> 2 2 Blue White yellow
#> 3 3 Color white White
Created on 2019-05-06 by the reprex package (v0.2.1)
Are you sure your column is character and not a factor?