PHP正規表現の逆参照の問題? 理論的な質問: 後方参照部分式について私が知っていることは次のとおりです: 1 最初の部分式 を参照する値を表します その後、誰かがこのように引用しているのを偶然見ました: ${1} 私は非常に無知ですが、使用できますが、関連するドキュメントが見つかりません。専門家からのアドバイスをお願いします。 共有先: -----解決策---------$1 これは、次のように使用されます。 js ------解決策---------http://cn2.php.net/ Manual/zh/function.preg-replace.php には次の手順があります: 置換に使用する文字列または文字列の配列。この引数が文字列でパターンが配列の場合、すべてのパターンがこの文字列で置き換えられます。 pattern と replace が両方とも配列の場合、各パターンは、replacement の対応する要素で置き換えられます。置換の要素がパターンの要素よりも少ない場合、余分なパターンは空の文字列に置き換えられます。 置換には後方参照 \n または (PHP 4.0.4 以降で利用可能) $n を含めることができますが、構文的には後者の方が優先されます。このような各参照は、n 番目に一致するキャプチャ サブグループによってキャプチャされたテキストに置き換えられます。 n は 0 ~ 99 で、\0 と $0 は完全なパターン マッチング テキストを表します。キャプチャ サブグループのシリアル番号のカウント方法は次のとおりです。キャプチャ サブグループを表す左括弧は、1 から開始して左から右に数えられます。置換にバックスラッシュを使用したい場合は、4 ("\\"、翻訳者の注釈: これは最初は PHP 文字列であるため、エスケープ後は 2 つになり、正規表現エンジンによってオリジナルと見なされます)バックスラッシュ)。 置換モードで作業しており、後方参照の後に別の番号を続ける必要がある場合 (たとえば、一致するパターンの直後にソース番号を追加する)、構文 \1 を使用して後方参照を記述することはできません。たとえば、\11 を指定すると、preg_replace() は、\1 後方参照の後にソース 1 が続くのか、それとも \11 後方参照の後に何も続かないのかを理解できなくなります。この場合の解決策は、${1}1 を使用することです。これにより、別の $1 後方参照、別の source1 が作成されます。 e 修飾子を使用する場合、この関数は一部の文字 ('、"、および NULL) をエスケープし、後方参照の置換を実行します。これが完了するとき、後方参照が一重引用符または二重引用符なしで解決されていることを確認してください。構文エラー (for例: 'strlen('$1') strlen("$2")')。置換が完了すると、エンジンは結果の文字列を PHP コードとして扱うため、PHP の文字列構文と eval 構文に準拠していることを確認してください。 eval メソッドを使用して戻り値を評価し、最終的に置換される文字列として使用します。 - ---- は を引用するために使用されます