微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用正则表达式在特定单词之后找到缩写

如何解决使用正则表达式在特定单词之后找到缩写

我的目标是识别出现在@PROG$ 之后的缩写词并将其更改为@PROG$。 (例如 ALI -> @PROG$)

输入

s = "背景(未签名):我们之前的研究表明,@PROG$ (ALI) 和 C 反应蛋白 (CRP) 是可手术非小细胞肺癌 (NSCLC) 患者的独立重要预后因素。"

输出

“背景(未签名):我们之前的研究表明,@PROG$、@PROG$ 和 C 反应蛋白 (CRP) 是可手术非小细胞肺癌 (NSCLC) 患者的独立重要预后因素。”

>

我尝试了这样的re.findall('(\(.*?\))',s),它给了我所有的缩写。有什么帮助吗?我需要修复什么?

解决方法

您可以使用 re.sub 解决方案,例如

import re
s = "Background (UNASSIGNED): Previous study of ours showed that @PROG$ (ALI) and C-reactive protein (CRP) are independent significant prognostic factors in operable non-small cell lung cancer (NSCLC) patients."
print( re.sub(r'(@PROG\$\s+)\([A-Z]+\)',r'\1@PROG$',s) )
# => Background (UNASSIGNED): Previous study of ours showed that @PROG$ @PROG$ and C-reactive protein (CRP) are independent significant prognostic factors in operable non-small cell lung cancer (NSCLC) patients.

参见Python demo。正则表达式是

(@PROG\$\s+)\([A-Z]+\)

参见regex demo。详情:

  • (@PROG\$\s+) - 第 1 组(\1 指的是替换模式中的该组值):@PROG$ 和一个或多个空格
  • \( - ( 字符
  • [A-Z]+ - 一个或多个大写 ASCII 字母(替换为 [^()]* 以匹配括号之间的任何内容,除了 ()
  • \) - 一个 ) 字符。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。