(while (string-match "[^_a-zA-Z0-9+@%.!\\-/]+" str)
(setq str (concat (substring str 0 (match-beginning 0))
"_"
(substring str (match-end 0)))))
(if (string-match "\\(@\\)[^/@]+" str)
(while (string-match "[^_a-zA-Z0-9+@%.!\\-/]+" str)
(setq str (concat (substring str 0 (match-beginning 0))
"_"
(substring str (match-end 0)))))
(if (string-match "\\(@\\)[^/@]+" str)