我有一个短信样本“花卢比300.00在商店名称从卡号xx2123”。这就像假设任何银行短信你收到手机后,你的交易。你知道吗
我需要用python编写一个健壮的程序。你知道吗
我想到了下面的解决方案,只考虑给定的字符串。你知道吗
def split_string(samplestring):
list_string = samplestring.split(' ')
return list_string
if __name__ == '__main__':
samplestring = 'Spent Rs 300.00 at Shop Name from card number XXXX2123'
list_string = split_string(samplestring)
#print(list_string)
print("Spent/Added:" + list_string[0])
#print(list_string[0])
print("Amount Type:"+ list_string[1])
#print(list_string[1])
print("Amount:"+ list_string[2])
#print(list_string[2])
print("Location where used:" + list_string[4] + list_string[5])
#print(list_string[4] + list_string[5])
print("Card Number:" + list_string[9])
#print(list_string[9])
输出应如下所示:
Spent/Added:Spent
Amount Type:Rs
Amount:300.00
Location where used:ShopName
Card Number:XXXX2123
但这在以下情况下不起作用: 1如果商店名称为single workd或消息中有任何额外字符,则此操作无效 2它也不会与不同类型的SMS从不同的银行工作
以下代码适用于示例SMS:
示例1:
结果:
示例2:
结果:
您正在尝试将机器生成的短文本消息解析为特定值。你知道吗
您可以尝试创建一个正则表达式列表,当您发现新的消息格式时,这些正则表达式会随着时间的推移而积累起来。当您收到一条消息时,请尝试使用每个正则表达式对其进行解析,直到有一个正则表达式匹配为止。如果没有匹配项,则创建一个警报以供稍后查看,以便可以创建新的正则表达式。你知道吗
您还可以将源电话号码映射到预期的正则表达式,但这可能只是一种优化,因为可能有您以前从未见过的来自同一银行的新电话号码。你知道吗
示例
'Spent Rs 300.00 at Shop Name from card number XXXX2123'
的正则表达式可能是:相关问题 更多 >
编程相关推荐