簡體   English   中英

php regex preg_match 僅數量

[英]php regex preg_match only amount

你好世界

我對正則表達式有一些問題我想獲取字符串的某些部分

示例 1:在這里我想獲取金額“1234.0”和日期“21-Jun-2021”以及 mb 編號“20010598278”

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”

25-Jun-2022 Funds Transfer - MB # 20010598278,Transferref.250922020633209684 Transferref.250922020633209684 4444.0 143,966.43

完整的文本是

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,有什么想法嗎?

我們可以使用preg_match_all和適當的正則表達式模式:

$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];

這打印:

21-Jun-2021
20010598278
1234.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM