如何使用re.sub()进行插入而是不替换

需求如题,比如对于下面的句子,我想将段落切分为子句,切分成一行一个子句的格式输出,同时不对原句子的任何字符修改。
例句:

sent = ' 某制药有限公司 温阳补肾。用于肾气亏虚,阳气不足所致的阳痿、早泄、遗精或弱精症弱精症 尚不明确。  每袋装20g  尚不明确。  18岁以下患者禁用。  开水冲服。一次一袋,一日3次。  温阳补肾,用于肾气亏虚、阳气不足所致的阳痿、早泄、遗精或弱精症 '
new_sent = re.sub('([。!?\?])([^”’])', r"\1\n\2", sent)
print(new_sent)

该段正则的主要目的就是寻找段落中句子结尾处(也即以句号感叹号问号所在的地方),然后使用换行符“\n”加以切分。但是又不想将上述符号替换,所以在re.sub()函数中的第二部分,使用了r"\1\n\2"来进行插入,此处“\1”的作用就是表示前面匹配的符号(比如句号),“\2”表示的是正则所匹配符号的后一位字符(例如句号后面的“用”等),中间的“\n”表示要插入的符号。当然前面不要忘了加上“r”。

结果为:

' 某制药有限公司 温阳补肾。
用于肾气亏虚,阳气不足所致的阳痿、早泄、遗精或弱精症弱精症 尚不明确。
  每袋装20g  尚不明确。
  18岁以下患者禁用。
  开水冲服。
一次一袋,一日3次。
  温阳补肾,用于肾气亏虚、阳气不足所致的阳痿、早泄、遗精或弱精症 '```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值