python自定义,Python自定义函数实现括号内符号替换以及文本拆分

需求:

将处分数据拆分成药材

eg='水蛭(熬),虻虫(去姻,足,熬)各30个,大黄48克(酒洗),桃仁20个(去皮,尖,双仁)' 分析:

数据为逗号分隔,且括号中也存在逗号,需要将括号内逗号替换为其他符号后再按照逗号进行拆分

处理思路:

①通过正则表达式将括号以及内容匹配出来

(去姻,足,熬) (去姻,足,熬)

②将匹配的结果的逗号替换为其他符号(、)

(去姻、足、熬) (去皮、尖、双仁)

③将提取处理结果与原文本进行替换

'水蛭(熬),虻虫(去姻,足,熬)各30个,大黄48克(酒洗),桃仁20个(去皮,尖,双仁)'(去姻,足,熬)→(去姻、足、熬)(去皮,尖,双仁)→ (去皮、尖、双仁)'水蛭(熬),虻虫(去姻、足、熬)各30个,大黄48克(酒洗),桃仁20个(去皮、尖、双仁)' 代码实现 import redef 替换括号中的内容(string,s1,s2):# string 文本 s1替换前的符号 s2替换后的符号 pattern='([^)]*?{s1}[^(]*?)'.format(s1=s1) # 正则提取括号中含有逗号以及括号的内容 strings=re.findall(pattern, string, re.M|re.I) ret=string for i in strings: ii=i.replace(s1,s2) # 将提取结果进行符号替换 print(i,ii) ret=ret.replace(i,ii) # 对原文本进行替换 return ret替换括号中的内容(eg,',','、')

5b198024fe3ca3079e00679acdd3c08b.png

自定义函数

对处理结果进行拆分完整代码:

fe2f38c205378c8dc4db5927f287d63f.png

jupyter

Postgresql函数 DROP FUNCTION IF EXISTS 替换括号中的内容;CREATE FUNCTION 替换括号中的内容(string TEXT,s1 TEXT, s2 TEXT) RETURNS textAS $$global stringglobal s1global s2import redef 替换括号中的内容(string,s1,s2): pattern='([^)]*?{s1}[^(]*?)'.format(s1=s1) strings=re.findall(pattern, string, re.M|re.I) ret=string for i in strings: ii=i.replace(s1,s2) print(i,ii) ret=ret.replace(i,ii) return retreturn 替换括号中的内容(string,s1,s2)$$ LANGUAGE plpython3u;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值