-1

こんにちは、正規表現の助けが必要です。これを使用して、OldMcDonald のように文字列を大文字で分割します preg_split('/(?=[A-Z])/', $data, -1, PREG_SPLIT_NO_EMPTY);

output 
[0] => Old 
[1] => Mc 
[2] => Donald 

今、私は MWTTH のような文字列を分割する必要があります。正規表現に、文字 H を含む T は 1 つの単語であることを伝える必要があります。正規表現でどのように適用できますか?

need the output: 
[0] => M 
[1] => w 
[2] => T 
[3] => TH

私が試したとき

$array = preg_split('/(?=[A-Z][TH])/', $data, -1, PREG_SPLIT_NO_EMPTY);

出力は

Array
(
    [0] => MTW
    [1] => F
    [2] => TH
)  

MTHバラバラにならず、正規表現を勉強する時間はありません。

4

2 に答える 2

0

私はそれを得ることができたかもしれませんが、とにかく私はすでに私が使用したことを発見しました:

$data = 'MTWFTH';
$array = preg_split('/(?=TH|M|T|W|F|S)/', $data, -1, PREG_SPLIT_NO_EMPTY);

出力

array (size=5)
  0 => string 'M' (length=1)
  1 => string 'T' (length=1)
  2 => string 'W' (length=1)
  3 => string 'F' (length=1)
  4 => string 'TH' (length=2)

これは、私のような事前定義されたデータに対してのみ機能します。

于 2013-01-16T10:42:36.997 に答える
-1

正規表現を勉強する時間がありません...つまり、あなたは基本的に私たちに問題を解決するように求めています。

それを理解するのに約 5 秒、書き留めるのに 30 秒、コピーして貼り付けるのにさらに 5 秒かかりました。

$string = 'OldMcMWTTHDonald';
preg_match_all('/(?:TH|[A-Z][a-z]*)/', $string, $matches);
var_dump($matches);

あなたは私の人生の 40 秒を無駄にしました。

于 2013-01-16T09:15:22.500 に答える