我正在尝试拆分字符串,如下所示:
一个项目(Item A
),可能包含89798个数字和字母@ $ 550.00
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)`
我该如何处理?
答案 0 :(得分:1)
preg_match('/^(\d+)\s*x\s(.+)\s@\s*([^@]+)$/', $string, $match);
unset($match[0]);
print_r($match);
答案 1 :(得分:0)
如果x
和@
两侧始终有空格,您可以试试这个:
$pattern = '/\s*(x|@)\s*/';
$array = preg_split($pattern, $input_string);