php 後方参照 1 と $1 の違いは何ですか?

WBOY
リリース: 2016-06-23 14:15:22
オリジナル
1336 人が閲覧しました

通常の php に 1 を使用している人を見ました
私はしばらく $1 を使用していました

2 つの違いは何ですか?一般的にはどれが使われているのでしょうか?


ディスカッションへの返信 (解決策)

ルール文字列では 1 の形式のみにすることができます
なぜなら、$ は行末を表し、$1 は曖昧になりやすいためです

後で使用するため、違い
と perl 自体は次のように $1 を使用します。 一致するグループの


にアクセスするには、正規表現では 1 のみを使用できますが、置換文字列では両方を使用できます。

preg_replace には後方参照\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 が作成されます。

PHPマニュアルpreg_replaceから引用

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート