\documentclass{article}
\usepackage{expex}
\lingset{glwordalign=center}
\usepackage{luacode}
\begin{luacode*}
function replace_punc ( buff )
if string.find ( buff , "\\gla" ) then
buff = string.gsub ( buff , "(``)" ,
"\\nogloss{".."%1".."} @ " )
buff = string.gsub (buff, "([!,.;:]+)",
"\\nogloss{".."%1".."} @ " )
end
return ( buff )
end
luatexbase.add_to_callback ( "process_input_buffer", replace_punc, "replace_punc" )
\end{luacode*}
\begin{document}