5

私は次のような文字列を持っています

cream 100G
sup 5mg Children

数字が最初に出現する前に分割したい。結果は

array(
    array('cream','100G'),
    array('sup','5mg Children')
);

このためのパターンを作成する方法を教えてもらえますか?

私は試した

list($before, $after) = array_filter(array_map('trim',
            preg_split('/\b(\d+)\b/', $t->formula)), 'strlen');

しかし、何かがうまくいかなかった。

4

3 に答える 3

3

そのための正規表現は必要ありません。

$str = 'cream 100g';

$p = strcspn($str, '0123456789');
$before = substr($str, 0, $p);
$after = substr($str, $p);

echo "before: $before, after: $after";

以下も参照してください。strcspn()

の文字、別名数字$strを含まない最初のセグメントの長さを返します。'0123456789'

于 2013-05-23T09:06:52.370 に答える