0

特定の文字列を検索して置換するために PHP を使用しようとしています。これは、テキスト エディター (正規表現など) で行うことと似ていると思います。

これは初期文字列の例です:

[quote=Registered_User;0123456]This is a message.[/quote]

望ましい出力:

[quote=Registered_User pid=0123456]This is a message.[/quote]

preg_replace() を使用して実験しましたが、数値要素を保持したい場合に問題が発生します。

str_replace() を使用して「;」を置き換えることはできません 分離されたセミコロンが見つかった最初の文字列にインスタンスが存在する可能性があるため、' pid=' を使用します。

お時間をいただきありがとうございます。

4

3 に答える 3

2

単語、セミコロン、数字が後に続くインスタンスを見つけてquote=、新しい形式に置き換えることができます。

preg_replace("/quote=(\w+);(\d+)/", "quote=$1 pid=$2", $string);
于 2012-04-12T01:28:12.380 に答える
0

文字列「Registered_User;0123456]This is a message」の先頭が変わらない場合は、次のようになります。

$string = "[quote=Registered_User;0123456]This is a message.[/quote]";
$beginStr = "[quote=Registered_User pid=";
$string = $beginStr . substr($string,23);
于 2012-04-12T01:43:51.323 に答える
-1

これは、「quote=」が前にある 15 個の単語文字が前にあるセミコロンを検出し、そのセミコロンを「pid=」に変更しますが、これは単語 (Registered_User) が 15 文字の場合にのみ機能します。

preg_replace("/(?<=([quote=]{6}(\w{15})));/", " pid=", $string);
于 2012-04-12T01:57:51.967 に答える