私は人々が次のようなことをする多くのコードに気づきました:
myClass.someMethod(something here, $1);
$ 1は「ここの何か」から価値を拾っていますか?
これは何として知られていますか?どこにも見つからないようですか?ただし、このステップでは、正規表現を使用する場合にプロセスがかなり使用されます。
私は人々が次のようなことをする多くのコードに気づきました:
myClass.someMethod(something here, $1);
$ 1は「ここの何か」から価値を拾っていますか?
これは何として知られていますか?どこにも見つからないようですか?ただし、このステップでは、正規表現を使用する場合にプロセスがかなり使用されます。
これは、新しい値に引き継ぐキャプチャグループ$1
を表す正規表現でよく見られます。
たとえば、Webサイトのツイートパーサーを構築しているとします。ツイートで@参照を見つけて、それらを特定のアカウントへのリンクに変換したいと思います。
// Our Tweet
$t = "I am @jonathansampson, and I work with @appendTo.";
// Find every occurence of @something, capture 'something'
echo preg_replace("/@([a-z]+)/i", "<a href='http://twitter.com/$1'>$0</a>", $t);
ここでは、@ somethingのすべての出現箇所を照合していますが、ユーザー名の部分を(
とでラップし)
ているため、置換テキストで個別に処理できます。パターン全体はで表され、ユーザー名の最後の文字$0
までの値全体を保持します。@
同じことがJavaScriptにも当てはまります。
var tweet = "I am @jonathansampson, and I work with @appendTo.",
patrn = /@([a-z]+)/gi,
links = tweet.replace(patrn, "<a href='http://twitter.com/$1'>$&</a>");
これで、変数links
に次の値が含まれます。
console.log(links);
/*
"I am <a href='http://twitter.com/jonathansampson'>@jonathansampson</a>, and
I work with <a href='http://twitter.com/appendTo'>@appendTo</a>."
*/
$&
私がJavaScriptで使用して、PHPで使用しているときに一致したパターン全体を取得したことに気付くかもしれません$0
。私たちは、これらの生活の違いに対処する必要があります。謝罪いたします ;)
あなたがjavascriptについて話しているなら、$は宣言で使用できるので、それはいくつかのことかもしれません。
たとえば、変数を次のように宣言できます。
var $1 = 1;
その後、あなたの呼び出しでそれを使用してください
myClass.someMethod(something here, $1);
同様に、それは関数への参照である可能性があります。