2013-06-22 12 views
2

我剛開始使用PHP正則表達式。我瞭解如何閱讀和寫作(我需要我的書,因爲我沒有記住任何圖案符號)。我真的想在我的網站上使用RegExp for BB Code,使用preg_replace什麼定義了要在preg_replace()中替換的正則表達式部分?

我理解參數,但我不明白的是定義了什麼是要在模式中被替換?我到目前爲止:

preg_replace('/(\[url=http:\/\/.*\])/','<a href="$1">$2</a>',"[url=http://google.com]"); 

現在,我知道這可能不是最好的「安全」明智的,我只想得到的東西工作。我匹配整個字符串...所以我得到一個看起來像mysite/[url=http://google.com]的鏈接。

我讀了PHP手冊就可以了,但我還是有點頭痛試圖吸收和理解的東西:

  • 什麼定義什麼是替換字符串中,因爲模式的?
  • 什麼電話我什麼我的$ 1和$ 2等等是?

我什至不知道他們叫什麼。有人可以向我解釋這一點嗎?

+0

正常,你不明白該模式是錯誤的。 –

+0

嗯?有一個匹配,如果這就是你說的沒有... 整個字符串匹配,所以我得到一個標籤的URL和文本'[url = http://google.com] 」。 –

回答

3
+0

而這個模式分隔符...這是什麼給你你的$ 1,你的$ 2等等? –

+1

所以()定義捕獲組,並且這些是你的值被替換! 哦,是的。非常感謝你! –

+0

@RickyYoder:不,它只是分隔模式而不是'/',使用'〜'或##作爲模式分隔符更簡單,因爲這樣可以避免跳過所有的斜線。 –