Разбить строку на части PHP - PullRequest
1 голос
/ 04 апреля 2009

У меня есть следующая строка, которую мне нужно разделить.

$string = "This is string sample - $2565";
$split_point = " - ";

One: Мне нужно иметь возможность разбить строку на две части с помощью регулярного выражения или любого другого совпадения и указать, где будет разбиваться.

Во-вторых: Также нужно сделать preg_match для $, а затем взять только число справа от $.

Есть предложения?

Ответы [ 4 ]

6 голосов
/ 04 апреля 2009
$split_string = explode($split_point, $string);

и

preg_match('/\$(\d*)/', $split_string[1], $matches);
$amount = $matches[1];

Если хотите, все это можно сделать в одном регулярном выражении с помощью:

$pattern = '/^(.*)'.preg_quote($split_point).'\$(\d*)$/'

preg_match($pattern, $string, $matches);
$description = $matches[1];
$amount = $matches[2];
1 голос
/ 04 апреля 2009

В двух других ответах упоминается explode(), но вы также можете ограничить количество частей, на которые предполагается разбить исходную строку. Например:

$s = "This is - my - string.";
list($head, $tail) = explode(' - ', $s, 2);
echo "Head is '$head' and tail is '$tail'\n";

Дадут ли вам:

Head is 'This is' and tail is 'my - string.'
1 голос
/ 04 апреля 2009
$parts = explode ($split_point, $string);
/*
$parts[0] = 'This is string sample'
$parts[1] = '$2565'
*/
0 голосов
/ 05 апреля 2009

explode - правильное решение для вашего конкретного случая, но preg_split - это то, что вам нужно, если вам когда-нибудь понадобятся регулярные выражения для разделителя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...