0

私は人々が次のようなことをする多くのコードに気づきました:

myClass.someMethod(something here, $1);

$ 1は「ここの何か」から価値を拾っていますか?

これは何として知られていますか?どこにも見つからないようですか?ただし、このステップでは、正規表現を使用する場合にプロセスがかなり使用されます。

4

2 に答える 2

5

これは、新しい値に引き継ぐキャプチャグループ$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。私たちは、これらの生活の違いに対処する必要があります。謝罪いたします ;)

于 2012-12-05T15:10:17.157 に答える
0

あなたがjavascriptについて話しているなら、$は宣言で使用できるので、それはいくつかのことかもしれません。

たとえば、変数を次のように宣言できます。

var $1 = 1;

その後、あなたの呼び出しでそれを使用してください

myClass.someMethod(something here, $1);

同様に、それは関数への参照である可能性があります。

于 2012-12-05T15:18:33.810 に答える