2009-04-03 8 views
1

分割する必要がある文字列がありますか?部品を分割するPHP

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

ワン: 私は正規表現や他の試合を使用して2つの部分に文字列を分割し、分割しようとしている場所を指定できるようにする必要があります。

第2: また、preg_matchを$にして、$の右側の数字だけを取得したいとします。

提案がありますか?

答えて

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

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

したい場合は、これがすべてで1つの正規表現で行うことができます。他の二つの答えがexplode()を言及しているが、あなたはすることもでき

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

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

してくださいに正規表現が必要な場合は何をしたいです予期しないエラーを避けるために、正規表現の例の$ split_pointの周りにpreg_quoteを追加してください。 – Willem

1
$parts = explode ($split_point, $string); 
/* 
$parts[0] = 'This is string sample' 
$parts[1] = '$2565' 
*/ 
1

ソース文字列を分割する部分の数を制限してください。例えば:

$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.' 
+0

出力はありません:ヘッドは「This is-」、テールは「my-string」です。 ? – Codex73

+0

いいえ、間違いなく。私は投稿する前にPHP REPLでそれをチェックしました。 –

+0

最初に何が起こったのですか? – Codex73

0

explodeは、特定の場合に適したソリューションですが、preg_splitはあなたが、セパレータ

関連する問題