<p>使用</p>
<pre><code>(?<!\d)\d(?:\s*\d){16}\d(?!\d)
</code></pre>
<p>见<a href="https://regex101.com/r/V0WcqL/1" rel="nofollow noreferrer">proof</a></p>
<p><strong>解释</strong></p>
<pre><code>
(?<! look behind to see if there is not:
\d digits (0-9)
) end of look-behind
\d digits (0-9)
(?: group, but do not capture (16 times):
\s* whitespace (\n, \r, \t, \f, and " ") (0
or more times (matching the most amount
possible))
\d digits (0-9)
){16} end of grouping
\d digits (0-9)
(?! look ahead to see if there is not:
\d digits (0-9)
) end of look-ahead
</code></pre>