DirtyChars = c(',', '.', ';', '?', '/', '\\', '`', '[', ']', '"', ':', '>', '<', '|', '-', '_', '=', '+', '(', ')', '^', '{', '}', '~', '\'', '*', '&', '%', '$', '!', '@', '#')
s <- "#w$o;r&d^$"
escape_for_char_class <- function(s) {gsub("([]^\\\\-])", "\\\\\\1", s)}
pattern <- paste0("[", escape_for_char_class(paste(DirtyChars, collapse="")), "]")
## [1] "[,.;?/\\\\`[\\]\":><|\\-_=+()\\^{}~'*&%$!@#]"
gsub(pattern, "", s, perl=TRUE)
RGlydHlDaGFycyA9IGMoJywnLCAnLicsICc7JywgJz8nLCAnLycsICdcXCcsICdgJywgJ1snLCAnXScsICciJywgJzonLCAnPicsICc8JywgJ3wnLCAnLScsICdfJywgJz0nLCAnKycsICcoJywgJyknLCAnXicsICd7JywgJ30nLCAnficsICdcJycsICcqJywgJyYnLCAnJScsICckJywgJyEnLCAnQCcsICcjJykKcyA8LSAiI3ckbztyJmReJCIKZXNjYXBlX2Zvcl9jaGFyX2NsYXNzIDwtIGZ1bmN0aW9uKHMpIHtnc3ViKCIoW11eXFxcXC1dKSIsICJcXFxcXFwxIiwgcyl9CnBhdHRlcm4gPC0gcGFzdGUwKCJbIiwgZXNjYXBlX2Zvcl9jaGFyX2NsYXNzKHBhc3RlKERpcnR5Q2hhcnMsIGNvbGxhcHNlPSIiKSksICJdIikKIyMgWzFdICJbLC47Py9cXFxcYFtcXF1cIjo+PHxcXC1fPSsoKVxcXnt9ficqJiUkIUAjXSIKZ3N1YihwYXR0ZXJuLCAiIiwgcywgcGVybD1UUlVFKQ==