擅长:python、mysql、java
<p>一个简单的DFA可以很好地解决这个问题。你只需要几个州:</p>
<ol>
<li>寻找<code>${</code></li>
<li>已看到<code>${</code>正在查找构成名称的至少一个有效字符</li>
<li>至少看到一个有效的名称字符,正在查找更多的名称字符或<code>}</code>。</li>
</ol>
<p>如果属性文件与顺序无关,则可能需要一个双通道处理器来验证每个名称是否正确解析。</p>
<p>当然,您需要编写替换代码,但是一旦您有了使用的所有名称的列表,最简单的可能实现是在<code>${name}</code>上使用相应的值查找/替换。</p>