This question is basically a duplicate of Error with percent sign in bib entry field when using biblatex/biber, however the accepted solution (biber configuration file set to skip the abstract field entirely) does not satisfy me and the question is a bit old so maybe something changed.
On the one hand, I would like to be able to use the abstract field if needed; on the other hand, export tools of some editors routinely include an unescaped "%" in abstracts. Is there a way around this that does not involve replacements in .bib files by hand or by an external software?
(BTW, I fail to see how biber can skip the abstract field even if it contains a "%", which proves that at some point it is not in LateX-mode of "ignore the comments", but cannot escape it reliably - that's purely for curiosity, but since I'm asking...)
MWE if needed: (the first pdflatex and biber compilations will work, for a successive pdflatex will fail with "Runaway argument?")
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{filecontents}
\begin{filecontents}{biblio.bib}
@article{key1,
author="Ann Onymous",
journal="Some journal",
title="Title",
year="2017",
abstract={This abstract will fail because of an unescaped percent sign:
10\% is fine, 10% is not.},
}
\end{filecontents}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblio.bib}
\begin{document}
Citation: \parencite{key1}.
\printbibliography
\end{document}
([0-9.]+)%
and replace with$1\\%
(regular expressions) to escape an unescaped percent sign if it follows digits or decimal points. This wouldn't deal with things like "x%", neither would it handle "10 %". Either of these cases could be fixed easily.