python 正则表达式如何在特定字符串后给出 space?

python regex how to give space after specific string?

我的代码:

text = '12\nx\n.17\n8\nx\n8.75\n6\nx\n8.33\n4\nx\n7.50'

re.sub(r'(\n)', '', text)
>>>12x.178x8.756x8.334x7.50 

我的预期结果是:

 <br> 12x.17 <br> 8x8.75 <br> 6x8.33 <br> 4x7.50 <br>

我想在每个整数前添加 <br> 标签。

更新1:

text = short_des.replace('\n',' ')
  >>>'12 x .17 8 x 8.75 6 x 8.33 4 x 7.50'

现在我想在每个整数前加上<br>

一种选择是使用 re.sub 和字典来映射替换:

text = '12\nx\n.17\n8\nx\n8.75\n6\nx\n8.33\n4\nx\n7.50'

repl = {'\nx\n': 'x', '\n': ' <br> '}

import re
out = re.sub(r'(\nx\n|\n)', lambda m: repl.get(m.group()), text)

输出:

'12x.17 <br> 8x8.75 <br> 6x8.33 <br> 4x7.50'

注意。由于 \n\nx\n 的子字符串,它必须在正则表达式中跟在第二个之后。