Parçaları PHP böler Dize

3 Cevap php

Aşağıdaki dize i bölmek için ihtiyaç var.

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

One: I need to be able to split the string into two parts using a regex or any other match and specify where is going to split.

Second: Also want to do a preg_match for $ and then only grab number on the right of $.

Herhangi bir öneriniz?

3 Cevap

$split_string = explode($split_point, $string);

ve

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

İsterseniz, bu tüm bir regex yapılabilir:

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

preg_match($pattern, $string, $matches);
$description = $matches[1];
$amount = $matches[2];

Diğer iki cevaplar explode() sözü var, ama aynı zamanda içine kaynak dize bölmek için pinti parça sayısını sınırlayabilir. Örneğin:

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

Size verilecektir:

Head is 'This is' and tail is 'my - string.'

explode özel durum için doğru çözümdür, ama preg_split Hiç ayırıcı için düzenli ifadeler gerekiyorsa ne istiyorsun