gpt4 book ai didi

python - 使用 Python 正则表达式从文本中提取信息

转载 作者:行者123 更新时间:2023-12-02 07:59:27 25 4
gpt4 key购买 nike

我有一条短信:

text = 'dear customer your account xx9052 has been debited with inr25697.50 on 23-nov-18 info 
bil001582495861 icici bank the available balance is inr 363.25'

在这里,我试图从文本中提取帐号、金额、日期和可用余额等信息。

我用下面的正则表达式试过了:

pattern = 'your account (.*) has been debited with (.*) on (.*) info (.*) available balance is (.*\d)$'

if (re.search(pattern, text, re.IGNORECASE)):
print(re.search(pattern, text, re.IGNORECASE).group(1)), \
print(re.search(pattern, text, re.IGNORECASE).group(2)), \
print(re.search(pattern, text, re.IGNORECASE).group(3)), \
print(re.search(pattern, text, re.IGNORECASE).group(5))

我得到了想要的结果:

xx9333
inr 25697.50
23-nov-18
inr 363.25

但是当文本稍作修改时,我遇到了这个正则表达式模式的问题:

text = 'dear customer your account xx9052 has been debited with inr 25697.50 on 23-nov-18 info bil 001582495861 icici bank the available balance is inr 363.25 for dispute call 04033667777'

使用相同的正则表达式得到结果:

xx9333
inr 25697.50
23-nov-18
inr 363.25 for dispute call 04033667777

余额是用额外信息提取的,而它应该只是 inr 363.25.。我该如何解决这个问题,以便在两种情况下都使用单一模式正确提取信息?

最佳答案

我建议单独提取信息片段,而不是使用单一模式。

例如:要获取金额,您可以使用正则表达式模式 - ([\d]+\.[\d]+)它将从所需的字符串中获取十进制数字,您可以为帐号和日期等其他信息创建正则表达式。

更新:
如果您想使用相同的模板,请将您的正则表达式更改为

pattern = '您的帐户 (.*) 已在 (.*) 上用 (.*) 记帐,信息 (.*) 可用余额为 (.*[\d]+\.[\d] +)'

关于python - 使用 Python 正则表达式从文本中提取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59434140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com