回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>跟进<a href="https://stackoverflow.com/questions/51609461/python-to-replace-a-symbol-between-between-2-words-in-a-quote">Python to replace a symbol between between 2 words in a quote</a></p>
<p>扩展输入和预期输出:</p>
<p>尝试将第二行中两个单词<strong>Durango和PC</strong>之间的<strong>逗号替换为<strong>&</strong>然后删除引号。第三行与Orbis和PC相同,<strong>第四行在引号中有两个单词组合,我想处理“AAA字符技术,软件”,“Durango,Orbis,PC”</strong></p>
<p>我想保留使用Python的其余行</p>
<p><strong>输入</p>
<pre><code>2,SIN-Rendering,Core Tech - Rendering,PC,147,Reopened
2,Kenny Chong,Core Tech - Rendering,"Durango, PC",55,Reopened
3,SIN-Audio,AAA - Audio,"Orbis, PC",13,Open
LTY-168499,[PC][PS4][XB1] Missing textures from Fort Capture NPC face,3,CTU-CharacterTechBacklog,"AAA - Character Tech, SOF - UPIs","Durango, Orbis, PC",29,Waiting For
...
...
...
</code></pre>
<p>像这样,在我的样本中可以有100行。因此,<strong>预期产出</strong>是:</p>
<pre><code>2,SIN-Rendering,Core Tech - Rendering,PC,147,Reopened
2,Kenny Chong,Core Tech - Rendering, Durango & PC,55,Reopened
3,SIN-Audio,AAA - Audio, Orbis & PC,13,Open
LTY-168499,[PC][PS4][XB1] Missing textures from Fort Capture NPC face,3,CTU-CharacterTechBacklog,AAA - Character Tech & SOF - UPIs,Durango, Orbis & PC,29,Waiting For
...
...
...
</code></pre>
<p>到目前为止,我可以考虑逐行阅读,如果行中包含引号,则将其替换为无字符,但替换其中的符号是我一直坚持的</p>
<p>以下是我现在的情况:</p>
<pre><code>for line in lines:
expr2 = re.findall('"(.*?)"', line)
if len(expr2)!=0:
expr3 = re.split('"',line)
expr4 = expr3[0]+expr3[1].replace(","," &")+expr3[2]
print >>k, expr4
else:
print >>k, line
</code></pre>
<p>但它不考虑第四行的情况?也可以有3个以上的组合。例如</p>
<pre><code>3,SIN-Audio,"AAA - Audio, xxxx, yyyy","Orbis, PC","13, 22",Open
</code></pre>
<p>我想做这个
<code>3,SIN-Audio,AAA - Audio & xxxx & yyyy, Orbis & PC, 13 & 22,Open</code></p>
<p>如何做到这一点,有什么建议吗?学习Python</p>