0

文字列から数字と文字を分割したいのですが、問題があります。
次のような入力:
入力例 1 :A5
入力例 2 :C16
入力例 3 :A725
入力例 4 :X05
結果は次のようになります:
結果例 1 :'A','5'
結果例 2 :'C','16'
結果例 3 :'A','725'
結果例 4 :'X','05'

私はベロ正規表現で試してみましたが、良い結果が得られません:
preg_split('/(?=\d+)/', $input)

4

2 に答える 2

3

また、選択された空の文字列が 2 桁の中間にならないように、否定の後読みを追加する必要があります。

現在、 stringA725の場合、正規表現は7、 、2および5の前の空の文字列で分割されます。これらのすべての後に少なくとも 1 つの数字が続くためです。

次の正規表現を使用できます。

preg_split('/(?<!\d)(?=\d+)/', $input)
于 2013-10-10T19:55:15.507 に答える
0

以下を使用できます。

$s = 'A5,C16,A725,X05';
if (preg_match_all("~(?>[a-z]+|\d+)~i", $s, $arr))
   var_dump($arr[0]);

与えます:

array(8) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "5"
  [2]=>
  string(1) "C"
  [3]=>
  string(2) "16"
  [4]=>
  string(1) "A"
  [5]=>
  string(3) "725"
  [6]=>
  string(1) "X"
  [7]=>
  string(2) "05"
}
于 2013-10-10T19:57:39.707 に答える