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

由于我是 Python 世界的新手,任何人都可以在以下情况下帮助我:

我有文本/描述,我需要使用 Python 从中提取单词“PO”及其后面的数字。

我试图提取数字,但没有成功。

格式如下:

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


慕虎7371278
浏览 169回答 4
4回答

互换的青春

如果您的数据看起来总是像您发布的那样,例如: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您可以使用正则表达式来提取字符串,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]这首先提取最后一部分(通过拆分使用-)以获得您感兴趣的部分。然后您再次拆分(通过 )最终摆脱可能的中间文本。

呼啦一阵风

如果格式始终相同,则可以用空格拆分整个字符串并获取最后一个 en 2 但最后一个位置:txt = "Additional funnel Czech Rep(50%) - PO is 12345"splt = txt.split()print(splt[-3], splt[-1])

绝地无双

考虑到 PO 12345 是一个字符串,您可以使用选择该字符串的最后 8 个字符[-8:]。例子 :a = 'code is 1234' print(a[-4:])输出给出'1234'。

千万里不及你

以下是提取数据的最简单方法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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python