擅长:python、mysql、java
<pre><code>>>> s= "full name:jones hardy|city and dialling code :london 0044|age:23 years"
>>> r=r"([^|:]+?)\s*:\s*([^|:]+)"
>>> re.findall(r, s)
[('full name', 'jones hardy '), ('city and dialling code', 'london 0044'), ('age', '23 years')]
</code></pre>
<p>因此,<code>'city and dialling code '</code>结尾的空格将被消除。在</p>
<p>但如果在强制<code>'|'</code>之前有空格,则不会消除:</p>
^{pr2}$
<p>将是<code>'jones hardy '</code>结尾处的空格。在</p>
<h2>编辑</h2>
<p><code>r"\s*([\w\s]+?)\s*:\s*([\w\s]+?)\s*(?:\||$)"</code>将消除目标字符串开头和结尾处的所有空格:</p>
<pre><code>>>> s
' full name: jones hardy | city and dialling code :london 0044|age:23 years'
>>> r=r"\s*([\w\s]+?)\s*:\s*([\w\s]+?)\s*(?:\||$)"
>>> re.findall(r, s)
[('full name', 'jones hardy'), ('city and dialling code', 'london 0044'), ('age', '23 years')]
</code></pre>