文字の数や数字の数に基づいて文字列を分割し、別々の文字列にする方法は?
うまくいけば、これは理にかなっています。助けてくれてありがとう (:
例: ユーザー入力:
- ヘンリー、スミス ID: 123456
ユーザー入力を別の文字列に並べ替えて、次の結果を得たいと思います。
$name = 'Henry, Smith';
$ID = '123456';
正規表現を使用して、数字のみと数字以外のすべてを一致させることができます。
$number = preg_replace("/[^0-9]/", '', $str);
$name = preg_replace("/[0-9]/", '', $str);
については、これは質問の例からname
返されることに注意してください。Henry, Smith ID:
これは数字を取り除くだけです...「ID:」が人の名前の一部ではないことはわかりません。
カレットの説明(^
):
角かっこの内側は、角かっこ以外のすべてに一致することを意味します。したがって[^0-9]
、数字以外のすべてに一致します。この例では、数値以外のすべてを空白(2番目のパラメーター)に置き換えます。については$name
、反対のことを行います。数字以外の文字だけを取得するために、数字であるすべてのものを空白に置き換えます。
正規表現の詳細については、こちらをご覧ください。