weixin_43392642 2021-05-09 17:55 采纳率: 100%
浏览 850
已采纳

python-正则表达式

问题困扰了很长时间,希望能够得到高手的帮助。

问题:用正则表达式提取某一字段(纯文本)中的NIHSS评分,新建个字段放入。
提取内容:当文字中出现“NIHSS”时,后面因为书写习惯,会有不同数量的标点或文字,当第一次出现数字时,就是抓取的要点。

我目前的工作进度:
实例:
1、我的代码
def nihss(x):
    nihss=re.findall(r"(?<=NIHSS).*?\d+\.?\d*",x["病程详情(日常)"])
    return nihss
df["NIHSS"]=df.apply(nihss,axis=1)

2、被提取字段的内容示例
双侧肱二头肌反射、肱三头肌反射对称存在,双侧膝反射、踝反射消失,双侧Babinski征阴性,双侧Chaddock征阴性,双侧Hoffman征阴性,余查体未能配合。2019年1月,NIHSS评分:8分,2019年3月,NIHSS住院评分得5分,。辅助检查:颅脑CT(2019-04-07)

设想的提取结果:第一次:8;第二次:5


问题复述:就是把一段文字中的出现"HIHSS"后出现的第一个数字提取出来,在"HIHSS"后和数字之间可能会有不同的文字和标点符号,一段文字中可能有好几个NIHSS评分,谢谢。

如问题得到解决,可以商定一定的酬劳作为补脑费用[face]qq:21.gif[/face]

  • 写回答

11条回答 默认 最新

  • 关注
    import re
    
    x = "双侧肱二头肌反射、肱三头肌反射对称存在,双侧膝反射、踝反射消失,双侧Babinski征阴性,双侧Chaddock征阴性,双侧Hoffman征阴性,余查体未能配合。2019年1月,NIHSS评分:8分,2019年3月,NIHSS住院评分得5分,。辅助检查:颅脑CT(2019-04-07)"
    
    nihss=re.findall(r"NIHSS.*?(\d+\.?\d*)", x, re.S)
    print(nihss) # ['8', '5']
    # 如果需要转成数值类型
    nihss = list(map(float,nihss))
    print(nihss) # [8.0, 5.0]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决