2011-11-25 46 views
0

我認爲這可能是一個相當常見的問題,但我還沒有在任何以前回答過的SO問題中找到匹配。用包在HTML H1標籤中的字符串替換括號內的字符串

如果我有這樣的字符串:

[我們的故事]敏捷的棕色狐狸跳過了懶惰的狗。 [我們 分析]什麼...

,並希望以取代<h1>str</h1>方括號中的字符串我那麼怎麼能做到這一點?這與在此SO窗口中實現代碼選項類似。

+0

請不要標記您的問題標題。你能告訴我們你試過的是什麼正則表達式嗎? – Bojangles

+0

我還沒有嘗試過任何正則表達式,因爲我不知道如何在保留其內容的同時只替換字符串中的[]。雖然我對正則表達式不太熟悉,但我知道可能有某種方法可以使用它們來完成此操作。如果我在標題中添加了標籤,我就沒有想到這一點。 –

回答

2

你使用了所謂的反向引用。在這種情況下,\ 1表示正則表達式模式的括號內的部分。

$string = preg_replace('/\[(.*)\]/', '<h1>\1</h1>', $string) 
+0

無論如何,只要'\\ 1'看到只需要一個'\\'就可以看到它在一個文字(單引號)字符串中? – Bojangles

+0

另一方面,'['和']'可能需要引用......我也有點驚訝地看到'/',但PHP從來沒有非常一致...... –

+0

我認爲任何字符都可能用於這個目的,'#','〜'和'/'是最常用的,我不知道這是否與php有什麼關係... – greg0ire

1

原正則表達式替換在Perl樣式:s/\[(.*?)\]/<h1>\1<\/h1>/g

+0

感謝您的幫助! –