我在將preg_match_all中使用的某些正則表達式轉換爲在preg_replace中使用時遇到了一些困難。PHP正則表達式幫助(從preg_match_all轉換爲preg_replace)
基本上,只通過正則表達式,我想匹配大寫字母,前面是空格,文本開頭或者一個超文本。這不是一個問題,這個效果很好,我有以下:
preg_match_all('/(?<= |\A|-)[A-Z]/',$str,$results);
echo '<pre>' . print_r($results,true) . '</pre>';
現在,我想要做什麼,就是用的preg_replace只與符合我條件的大寫字符返回字符串以上。如果我將正則表達式直接移入preg_replace,那麼它顯然會替換我想保留的字符。
任何幫助,將不勝感激:)
此外,我充分意識到正則表達式是不是該在效率方面的最佳解決方案,但儘管如此,我想使用的preg_replace。
你可以簡單地將你的正則表達式的否定變成preg_replace嗎? – Ina 2012-04-25 20:05:59
@Ina你的意思是在正則表達式中增加一個(!)如果是這樣,我試過了,但是因爲後面的效果,效果不一樣 – 2012-04-25 20:17:58