擅长:python、mysql、java
<p>如果确实有前导空格,并且在创建示例字符串时没有输入错误,则可以使用</p>
<pre class="lang-py prettyprint-override"><code>[re.sub(r'[^\S\n]*\n[^\S\n]*', ' ', x).strip() for x in re.split(r'\n[^\S\n]*(?=\d)', a)]
# => ['1.pharagraph1 text1', '2.pharagraph2 text2', '3.pharagraph3 text3']
</code></pre>
<p>见<a href="https://ideone.com/3RFcot" rel="nofollow noreferrer">Python demo</a></p>
<p><code>\n[^\S\n]*(?=\d)</code>模式匹配一个换行符,然后匹配任何零个或多个水平空白(<code>[^\S\n]*</code>),后跟一个数字。然后,在每个匹配中,0+水平空白、换行和0+水平空白的每个序列都被替换为一个空格</p>
<p>如果字符串没有前导空格,可以使用更简单的方法:</p>
<pre class="lang-py prettyprint-override"><code>import re
a="""1.pharagraph1
text1
2.pharagraph2
text2
3.pharagraph3
text3"""
print( [x.replace("\n"," ") for x in re.split(r'\n(?=\d)', a)] )
# => ['1.pharagraph1 text1', '2.pharagraph2 text2', '3.pharagraph3 text3']
</code></pre>
<p>见<a href="https://ideone.com/sZb2xL" rel="nofollow noreferrer">online Python demo</a>。在这里,字符串只需在一个换行符处拆分,该换行符后跟一个数字(<code>\n(?=\d)</code>),然后所有换行符都替换为一个空格</p>