3

我正在尝试拆分如下字符串:

一个项目 ( Item A),可能包含 89798 个数字和字母 @ $550.00

4 个Item B@ $420.00

476584 个Item C,数量更大,货币符号不同 @ £420.00

进入:

array(

    0 => 1

    1 => "some item which may contain 89798 numbers and letters"

    2 => $550.00

);

那有意义吗?

我正在寻找一种正则表达式模式,它将拆分数量、描述和价格(包括符号)。

字符串将始终为:

qty x description @ price+symbol

所以我假设正则表达式是这样的:

`(match a number and only a number) x (get description letters and numbers before the @ symbol) @ (match the currency symbol and price)`

我应该如何处理这个?

4

2 回答 2

1
preg_match('/^(\d+)\s*x\s(.+)\s@\s*([^@]+)$/', $string, $match);
unset($match[0]);
print_r($match);
于 2012-11-30T20:38:56.313 回答
0

如果 和 两边总是有空格x@你可以试试这个:

$pattern = '/\s*(x|@)\s*/';
$array = preg_split($pattern, $input_string);
于 2012-11-30T20:40:31.257 回答