擅长:python、mysql、java
<p>您可以将<code>"-"</code>放在<code>{author}</code>占位符之外,然后使用<code>re.sub</code>:</p>
<pre><code>import re
templateString = r'{title} - {author} ({timestamp})'
title = "10 things on my todo list"
author = "Brandon"
timestamp = "2018-01-01 00:00:01"
new_data = re.sub('-\s(?=\{author)', '', templateString).format(title=title, author=author, timestamp = timestamp) if not author else templateString.format(title=title, author=author, timestamp = timestamp)
print(new_data)
</code></pre>
<p>输出:</p>
<pre><code>10 things on my todo list - Brandon (2018-01-01 00:00:01)
</code></pre>
<p>当<code>author</code>为空时:</p>
<pre><code>title = "10 things on my todo list"
author = ""
timestamp = "2018-01-01 00:00:01"
new_data = re.sub('-\s(?=\{author)', '', templateString).format(title=title, author=author, timestamp = timestamp) if not author else templateString.format(title=title, author=author, timestamp = timestamp)
print(new_data)
</code></pre>
<p>输出:</p>
<pre><code>10 things on my todo list (2018-01-01 00:00:01)
</code></pre>