Python中+字符之前的字符串内容

2024-10-02 00:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

输入:

s = 'Coated tablet + ALFUZOSIN HYDROCHLORIDE, Film-coated tablet + ALFUZOSIN HYDROCHLORIDE, Modified-release tablet + ALFUZOSIN HYDROCHLORIDE, Prolonged-release tablet + ALFUZOSIN HYDROCHLORIDE'

预期产量:

s = 'Coated tablet, Film-coated tablet, Modified-release tablet, Prolonged-release tablet'

对于这样的每个字符串,如何在Python中获得必要的输出,以便+之后的所有元素都不会出现


Tags: 字符串元素releasemodifiedfilm产量tabletprolonged
3条回答

使用正则表达式:

import re

old_s = 'Coated tablet + ALFUZOSIN HYDROCHLORIDE, Film-coated tablet + ALFUZOSIN HYDROCHLORIDE, Modified-release tablet + ALFUZOSIN HYDROCHLORIDE, Prolonged-release tablet + ALFUZOSIN HYDROCHLORIDE'
new_s = re.sub(r'\s\+.*?, | \+.*?$', ',', s)[:-1]

print(new_s)
>>> 'Coated tablet, Film-coated tablet, Modified-release tablet, Prolonged-release tablet'

在管道的左侧\s表示空白,\+.*?,查找+,之间的所有内容,在右侧,您将使用没有逗号的结束大小写,而是使用$

[:-1]由于所有匹配项都被逗号替换,因此您不希望在字符串的末尾使用逗号

先在,上拆分,然后在+上拆分,然后在索引0处获取项

', '.join([i.split("+")[0].strip() for i in s.split(",")])

输出

'Coated tablet, Film-coated tablet, Modified-release tablet, Prolonged-release tablet'

使用正则表达式

它从+中删除,直到用完非逗号的字符

import re
s = 'Coated tablet + ALFUZOSIN HYDROCHLORIDE, Film-coated tablet + ALFUZOSIN HYDROCHLORIDE, Modified-release tablet + ALFUZOSIN HYDROCHLORIDE, Prolonged-release tablet + ALFUZOSIN HYDROCHLORIDE'

re.sub(" [+] [^,]+","",s)

相关问题 更多 >

    热门问题