Цель моего кода - получить весь тейк-профит с целым или десятичным значением. схема записи Takeprofit не будет такой же.
Проблема:
- Я хочу $ m [3] [4] или $ m [4] [4]как 1.0870, но я получил только 0870. Я получаю этот результат, когда число начинается с 1.xxxx. Они противоречивы. Я не могу решить
- TP ----- 1.0870 и TP = 1.0870 не обнаружены
Мой код:
<?php
$s = 'SS 1.0140 SL 1.0670 TP1 1.0870 TP 1 1.0870 TP 2 1.0870 Takeprofit1 1.0870 Take profit 1 1.0870 TP 1.0870 TP-----1.0870 TP=1.0870 TP1=1.0870 TP Open';
$p = '#\b(TP1|TP 1|TP2|TP 2|TP3|TP 3|TAKE PROFIT 1|TAKE PROFIT 2|TAKE PROFIT 3|TAKEPROFIT 1|TAKEPROFIT 2|TAKEPROFIT 3|TAKEPROFIT\|TP)(.*?)(\bOpen\b|\b(\d+(?:\.\d+)?)\b)\b#i';
preg_match_all($p , $s , $m);
Результат $ m:
Array
(
[0] => Array
(
[0] => TP1 1.0870
[1] => TP 1 1.0870
[2] => TP 2 1.0870
[3] => Take profit 1 1.0870
[4] => TP 1.0870
[5] => TP1=1.0870
)
[1] => Array
(
[0] => TP1
[1] => TP 1
[2] => TP 2
[3] => Take profit 1
[4] => TP 1
[5] => TP1
)
[2] => Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] => .
[5] => =
)
[3] => Array
(
[0] => 1.0870
[1] => 1.0870
[2] => 1.0870
[3] => 1.0870
[4] => 0870
[5] => 1.0870
)
[4] => Array
(
[0] => 1.0870
[1] => 1.0870
[2] => 1.0870
[3] => 1.0870
[4] => 0870
[5] => 1.0870
)
)