2012-12-05 47 views
0

我看到了很多代碼裏的人做這樣的事情:你怎麼稱呼它,當您將參數傳遞到下一個參數

myClass.someMethod(something here, $1); 

的$ 1拿起從「東西在這裏」的值?

這是什麼叫做?我似乎無法在任何地方找到它?但這個步驟,過程中的情況下使用正則表達式頗有幾分..

+3

你在說什麼*具體*語言? – Tigran

+2

您將需要從實際代碼中提供具體示例。 – Pointy

+2

選擇一種語言。這對不同的語言會有不同的含義。 –

回答

5

你會經常看到這樣的正則表達式,其中$1表示你結轉到新的價值捕獲組

例如,假設我們正在爲我們的網站構建推文解析器。我們想找到@在鳴叫引用,並將其轉化爲鏈接到這些特定的帳戶:

// 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 - 我們必須處理這些生活中的差異。我的歉意;)

+1

也參見:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace查找「實施例:在一個串的開關的話」 – Paul

+0

@Jonathan桑普森謝謝了,道歉不是我的問題很清楚。 – Anicho

0

如果你在談論javascript,$可以在聲明中使用,所以它可能是一些東西。

例如,你可以將變量聲明爲

var $1 = 1; 

然後用它在您的通話

myClass.someMethod(something here, $1); 

同樣它可能是一個函數的引用。