gpt4 book ai didi

java - 如何从给定字符串中获取支付金额、引用号、名字、姓氏和日期

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:41 24 4
gpt4 key购买 nike

新余额为 58,000 TZS。您已收到来自 FIRSTNAME LASTNAME, 0712349009 的 53,000 条信息。2013 年 3 月 12 日上午 11:21,引用编号。 PP131203.1121.A01676。使用 Tigo Pesa 免费支付账单。 Tigo Pesa tunarahisisha Maisha。

我尝试过使用 split() 但恐怕细节和位置可能会改变

预期输出,我希望将我从消息中找到的内容分配给变量,即

`newBalance=58,000` 
`amountReceived=53,000`
`fullName=FIRSTNAME LASTNAME`
`fromNumber0712349009 `
`dateReceived=03/12/2013 11:21 AM`
`referenceNumber=PP131203.1121.A01676`

这样我就可以将这些值添加到数据库等中。

这是我尝试过的。

String message[] = msg.split(" "); 
String amount = message[4];
String fullname = message[10]+" "+message[11];
String from = message[12];
String datetime = message[13]+" "+message[14]+" "+message[15];
String ref_number = message[18];

最佳答案

(?i)((?<=(from\s))[a-z]+\s[a-z]+|(?<=(received\s))[0-9]+\,?[0-9]+|(?<=\.\s)\d{1,2}\/\d{1,2}\/\d{2,4}\s[0-9]{1,2}\:[0-9]{1,2}(\s(am)|\s(pm))?)

可能看起来又长又困惑,但来自:

New balance is TZS 58,000. You have received 53,000 from FIRSTNAME LASTNAME, 0712349009. 03/12/2013 11:21 AM, Reference no. PP131203.1121.A01676. Pay your bills with Tigo Pesa for free. Tigo Pesa tunarahisisha Maisha.

这将匹配:

58,000
FIRSTNAME LASTNAME
03/12/2013 11:21 AM

说明:

我们几乎可以将正则表达式分成三部分,因为它的格式如下 (some regex|some regex|some regex) |=OR

在我们开始之前(?i)只是意味着任何字母匹配都将不区分大小写,这意味着[a-z]将匹配大写和小写字母。

第 1 部分:

(?<=(from\s))[a-z]+\s[a-z]+

这是在寻找from后面的两个单词,在本例中将是名字和姓氏

我建议研究 LookaheadsLookbehinds 以更清楚地理解这一点。

第 2 部分:

(?<=(received\s))[0-9]+\,?[0-9]+

这是用可选的逗号来匹配一些数字。字符后面的 ? 表示前面的字符是可选的。

第 3 部分:更令人困惑

(?<=\.\s)\d{1,2}\/\d{1,2}\/\d{2,4}\s[0-9]{1,2}\:[0-9]{1,2}(\s(am)|\s(pm))?

首次关闭日期:

(?<=\.\s)\d{1,2}\/\d{1,2}\/\d{2,4}\s

这是在句号1或两个数字之后匹配,然后是/\正在转义/。然后再次执行相同的操作,匹配另一个斜杠的 1 或 2 个数字,然后计算年份的 2 或 4 个数字。然后是一个空格。接下来我们有时间:

[0-9]{1,2}\:[0-9]{1,2}(\s(am)|\s(pm))?

在这里,我们匹配 1 或 2 个数字,然后 :\ 转义,然后再次匹配 1 或 2 个数字,然后我们匹配一个空格,am、pm 或两者都没有 情况并不重要。希望这有帮助!:-)

关于java - 如何从给定字符串中获取支付金额、引用号、名字、姓氏和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20426902/

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