If you're willing and able to use LuaLaTeX, it's reasonably straightforward to set up a preprocessor-type action that will replace instances of §§ ... §§ with \begin{align} ... \end{align}.

\documentclass{article}
\usepackage{amsmath} % for 'align' env.
\usepackage{luacode} % for '\luaexec' environment
\luaexec{ % see https://tex.stackexchange.com/a/240185/5001
local in_display_math = false
function replace§§ ( x )
if not in_display_math then
in_display_math = true
return "\\begin{align}"
else
in_display_math = false
return "\\end{align}"
end
end
function replace_double_para ( s )
s = s:gsub ( "§§(.-)§§" , "\\begin{align} \%1 \\end{align}" )
s = s:gsub ( "§§" , replace§§ )
return s
end
}
% define a couple of LaTeX utility macros
\newcommand\ReplaceDoubleParaOn{\directlua{luatexbase.add_to_callback(
"process_input_buffer", replace_double_para, "replace_double_para" )}}
\newcommand\ReplaceDoubleParaOff{\directlua{luatexbase.remove_from_callback(
"process_input_buffer", "replace_double_para" )}}
\begin{document}
\ReplaceDoubleParaOn % activate the Lua function
§§ 5+5 &=10 §§
§§
1+1 &= 2 \
3+3 &= 6 \
9+9 &=18
§§
\ReplaceDoubleParaOff % deactivate the Lua function
§§§§§§§§§§§§§§§§
\end{document}
$has a special meaning in TeX, and so does#. Changing#like that will definitely break your document somewhere (not to mention thatalignwouldn't accept that, for the reason in the comment linked below). (You could make#behave like$by doing\catcode`\#=3, but don't) – Phelype Oleinik Apr 02 '21 at 15:49§§instead? – Clone Apr 02 '21 at 16:05and]`, a standard LaTeX notation for display math? – Zarko Apr 02 '21 at 16:37\begin{align*} ... \end{align*}. – Clone Apr 02 '21 at 17:57