为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Python 从一行文本中提取所需的文本?

如何使用 Python 从一行文本中提取所需的文本?

慕虎7371278 2023-06-20 17:24:46
由于我是 Python 世界的新手,任何人都可以在以下情况下帮助我:我有文本/描述,我需要使用 Python 从中提取单词“PO”及其后面的数字。我试图提取数字,但没有成功。格式如下:Additional Funnel Ireland(50% 押金)- PO 12345Monthly Retainer (PO00011223)PO0000054321:3 个月:8 月、9 月、10 月Monthly Retainer PYB (PO 11236)Additional Funnel Czech Republic (50%) - PO is 78901
查看完整描述

4 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

如果您的数据看起来总是像您发布的那样,例如:

Additional Funnel Ireland(50% 押金)- PO 12345
Monthly Retainer (PO00011223)
PO0000054321:3 个月:8 月、9 月、10 月
Monthly Retainer PYB (PO 11236)
Additional Funnel Czech Republic (50%) - PO is 78901

您可以使用正则表达式来提取字符串,

import re
res = ''.join(re.search('(PO)[\sA-Za-z]*(\d+)', s).groups())

根据您之前的帖子,旧的解决方案是

s = "Additional Funnel Ireland(50% deposit) - PO 12345"
splitted = s.split(' - ')[-1].split()
res = splitted[0]+splitted[-1]

这首先提取最后一部分(通过拆分使用-)以获得您感兴趣的部分。然后您再次拆分(通过 )最终摆脱可能的中间文本。


查看完整回答
反对 回复 2023-06-20
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

如果格式始终相同,则可以用空格拆分整个字符串并获取最后一个 en 2 但最后一个位置:


txt = "Additional funnel Czech Rep(50%) - PO is 12345"

splt = txt.split()


print(splt[-3], splt[-1])


查看完整回答
反对 回复 2023-06-20
?
绝地无双

TA贡献1946条经验 获得超4个赞

考虑到 PO 12345 是一个字符串,您可以使用选择该字符串的最后 8 个字符[-8:]

例子 :

a = 'code is 1234'
print(a[-4:])

输出给出'1234'


查看完整回答
反对 回复 2023-06-20
?
千万里不及你

TA贡献1784条经验 获得超9个赞

以下是提取数据的最简单方法


logic-> 使用 string.find 方法在字符串中查找 PO 的索引。让我们假设 x 是 PO 的索引


提取的字符串=PO[x:]


然后将is替换为没有空格。


代码->


txt = "Additional funnel Czech Rep(50%) - PO is 12345"

index=txt.find("PO")

extracted_string=txt[index:]

print(extracted_string.replace(" is ","")

输出


PO12345


查看完整回答
反对 回复 2023-06-20
  • 4 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信