1

次のパターンの文字列があります。

A-B-C-D
A-AB-C-DP
AQ-B-MN-QD

等々。このパターンは、各文字列がダッシュで区切られた 4 つの文字グループを持つという同じ規則に従います。ただし、文字列には、上記のように 1 文字または 2 文字の任意の組み合わせのグループが含まれる場合があります。

今私がやりたいのは、2番目と3番目のダッシュの後に来る文字を置き換えることです。

グループ内の文字が一貫していれば、それを使用する方が簡単でstrpossubstr関数を使用する方が簡単です。しかし、ここでは文字はグループ内で一貫していません。このシナリオでこれを行う方法は?

ありがとう

4

3 に答える 3

4

文字列を配列に分解し、処理して文字列に戻します。

$a = explode('-', $string);
// do stuf on element 2 and 3
$string = implode('-', $a);
于 2012-10-11T17:57:57.677 に答える
2

$string = abcd;

リスト ($a、$b、$c、$d) = 爆発 ("-"、$string);

そこから連結できます。

于 2012-10-11T17:59:46.813 に答える
1

正規表現の方法。をあなたの値$2に置き換えてみてください$3

# replace $2, $3 with the value that you want
echo preg_replace('#([^-]+)\-([^-]+)\-([^-]+)\-([A-Z]+)#', '$1-$2-$3-$4', 'AQ-B-MN-QD');
于 2012-10-11T18:06:22.597 に答える