2

特定の発生に基づいて異なる変数に分割しようとしている次の文字列があります

Brodel8DARK HORSE COMICS

最終結果を

$user = Brodel

$index = 8

$publisher = DARK HORSE COMICS

私はいくつかの正規表現で遊んでみましたが、私は初心者です

この条件は常に true になります

ユーザー名は変更されます (文字数が異なるなど.) インデックスは常に整数ですが、3 桁以上になる可能性があります パブリッシャーは常にすべて大文字になります

助けてくれてありがとう

4

2 に答える 2

5

パブリッシャーが数字で始まらない限り、この正規表現は機能するはずです

/^([A-Za-z]+)(\d+)([A-Z\s]+)$/

0+ 文字数の後に 0+ 数字、最後に 0+ 大文字が続きます。

<?php

$string = 'Brodel8DARK HORSE COMICS';

if(preg_match('/^([A-Za-z]+)(\d+)([A-Z\s]+)$/', $string, $matches) === 1){
    var_dump($matches);
}

これは以下を出力します:

array(4) {
  [0]=>
  string(24) "Brodel8DARK HORSE COMICS"
  [1]=>
  string(6) "Brodel"
  [2]=>
  string(1) "8"
  [3]=>
  string(17) "DARK HORSE COMICS"
}
于 2013-09-17T16:15:47.933 に答える