首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php preg_match仅数量

php preg_match仅数量
EN

Stack Overflow用户
提问于 2022-06-29 02:05:42
回答 1查看 34关注 0票数 -3

Hello world

我对regex有一些问题,我想得到字符串的一些部分

例1:这里我想得到金额"1234.0“和日期”21-6月-2021“,也就是mb编号"20010598278”。

代码语言:javascript
复制
21-Jun-2021 Bank Fees - Funds Transfer - MB #20010598278 ,Transfer ref.250922020633209684 Transferref.250333020633209684 1234.0 143,956.43

例2:这里我想得到金额"4444.0“和日期"25-Jun-2022”,也就是mb编号"20010598278“。

代码语言:javascript
复制
25-Jun-2022 Funds Transfer - MB # 20010598278,Transferref.250922020633209684 Transferref.250922020633209684 4444.0 143,966.43

compelete文本是

代码语言:javascript
复制
25-Jun-2022 Bankak Fees - Funds Transfer - MB #20010598278 ,Transfer ref.250922020633209684 Transferref.250922020633209684 10.0 143,956.43 25-Jun-2022 Funds Transfer - MB # 20010598278,Transferref.250922020633209684 Transferref.250922020633209684 4000.0 143,966.43 24-Jun-2022 Bankak Fees - BP #20278550446 , Transferref.#Bashaer 897906 Transfer ref.#Bashaer 897906 10.0 147,966.43 24-Jun-2022 BP # 20278550446,Transfer ref.#Bashaer 897906Transfer ref.#Bashaer 897906 20000.0 147,976.43 23-Jun-2022 Bankak Fees - -Zain #20277797569 , Transfer ref.#ZainBill 900946824 Transfer ref.#Zain Bill 900946824 10.0 167,976.43 23-Jun-2022 -Zain # 20277797569,Transfer ref.#Zain Bill 900946824Transfer ref.#Zain Bill 900946824 86700.0 167,986.43 23-Jun-2022 Funds Transfer - MB # 20010564267,Transferref.235022180616750305 Transferref.235022180616750305 10000.0 254,686.43 23-Jun-2022 Bankak Fees - Funds Transfer - MB #20010563561 ,Transfer ref.23302218068730100006 Transferref.23302218068730100006 10.0 244,686.43 23-Jun-2022 Funds Transfer - MB # 20010563561,Transferref.23302218068730100006 Transferref.23302218068730100006 3325.0 244,696.43 23-Jun-2022 Bankak Fees - Funds Transfer - MB #20010563116 ,Transfer ref.232022180646120606 Transferref.232022180646120606 10.0 248,021.43 23-Jun-2022 Funds Transfer - MB # 20010563116,Transferref.232022180646120606 Transferref.232022180646120606 6652.0 248,031.43 23-Jun-2022 Funds Transfer - MB # 20001957673,Transferref.23312214061431100031 Transferref.23312214061431100031 41200.0 254,683.43 22-Jun-2022 Bankak Fees - Funds Transfer - MB #20010530021 ,Transfer ref.225322200629053100005 Transferref.225322200629053100005 10.0 213,483.43 22-Jun-2022 Funds Transfer - MB # 20010530021,Transferref.225322200629053100005 Transferref.225322200629053100005 50000.0 213,493.43 22-Jun-2022 Funds Transfer - MB # 20001728503,Transferref.22232216065923296 Transferref.22232216065923296 248000.0 263,493.43 21-Jun-2022 Bankak Fees - Funds Transfer - MB #20010480587 ,Transfer ref.211622150699216100013 Transferref.211622150699216100013 10.0 15,493.43 21-Jun-2022 Funds Transfer - MB # 20010480587,Transferref.211622150699216100013 Transferref.211622150699216100013 50000.0 15,503.43 21-Jun-2022 Funds Transfer - MB # 20003484214,Transferref.211322150645513576 Transferref.211322150645513576 7000.0 65,503.43

我只想要每个部分的图案

我用的是php,知道吗?

EN

回答 1

Stack Overflow用户

发布于 2022-06-29 02:11:15

我们可以使用preg_match_all和适当的regex模式:

代码语言:javascript
复制
$input = "21-Jun-2021 Bank Fees - Funds Transfer - MB #20010598278 ,Transfer ref.250922020633209684 Transferref.250333020633209684 1234.0 143,956.43";
preg_match_all("/(\d{1,2}-\w{3}-\d{4}) .*? MB #(\d+).*? (\d+(?:\.\d+)?) \d{1,3}(?:,\d{3})*(?:\.\d+)?\b/", $input, $matches);
echo $matches[1][0] . "\n";
echo $matches[2][0] . "\n";
echo $matches[3][0];

这些指纹:

代码语言:javascript
复制
21-Jun-2021
20010598278
1234.0
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72795004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档