內容

2013-05-21 54 views
1

我試圖創建一個正則表達式替換內容

href="/test/any-word-here" 

href="/search/theword.html" 

我是很新,正則表達式的,所以我不完全相信我在做但我想出了這

preg_replace('[href="/test/]([a-zA-Z])\"', "href=\"/search/$2.html\"", $content); 

任何人都可以幫我嗎?

+0

這是什麼結果? –

回答

1

你很近。 []是不可取的。您還需要捕獲整個單詞而不只是一個字母。

preg_replace('#href="/test/(\w+)"#', 'href="/search/\1.html"', $content); 
1

我會放棄你習慣的「你不應該用正則表達式解析html」的迴應;大部分的問題仍然需要一個正則表達式:)

preg_replace('#href="/test/([^"]+)"#', 'href="/search/$1.html"', $content); 

而是匹配了積極的字符集,只是匹配任何字符,直到你打雙引號字符。假設適當的事先逃脫,那應該工作得很好。