正則表達式的幫助這裏是我的代碼:一個新手
$searchTerm='/9j/4AAQSkZJ';
$searchTerm = preg_replace('/\/(+s)\//i','',$searchTerm);
我試圖從$searchTerm
刪除/9j/
。
這是專門斜槓,則沒有空格的字符集和整數然後斜線
有什麼不對我的表現?
正則表達式的幫助這裏是我的代碼:一個新手
$searchTerm='/9j/4AAQSkZJ';
$searchTerm = preg_replace('/\/(+s)\//i','',$searchTerm);
我試圖從$searchTerm
刪除/9j/
。
這是專門斜槓,則沒有空格的字符集和整數然後斜線
有什麼不對我的表現?
,則應該更換+s
與.*
而且,沒有必要爲i
$newTerm = preg_replace('/\/(.*)\//', '', $searchTerm);
+1從很好的答案,並提供問題的快速解決方案和解決方案。 –
$newTerm = preg_replace('#/[a-z0-9]+/#i', '', $searchTerm);
用其他東西代替/
分隔符(在我的示例中爲#
)使得它更易於閱讀,特別是如果您的模式恰好包含/
個字符。使用另一個分隔符意味着你不需要跳過斜槓。
試試這個:
preg_replace('#/.*/#', '', $searchTerm);
$searchTerm='/9j/4AAQSkZJ';
$searchTerm = preg_replace('~^/\S+/~','',$searchTerm);
我不知道你在哪裏得到了什麼作爲在正則表達式有意義+s
。
個人而言,我會建議這樣的:
$searchTerm = explode("/",$searchTerm,3)[2];
但請注意,在上最新的PHP這隻作品。對於舊版本,你需要:
$searchTerm = explode("/",$searchTerm,3);
$searchTerm = $searchTerm[2];
如果你想有一個正則表達式,試試這個:
$searchTerm = preg_replace("(^/[^/]+/)","",$searchTerm);
此正則表達式使用括號作爲分隔符(你從來沒有逃避什麼避免衝突,如果你使用圓括號,因爲它們是匹配的對),它從字符串的開始處開始,尋找斜線,然後查找不是斜線的東西,然後是第二個斜線,然後將其全部刪除。
如果你爲你的正則表達式分隔符(例如'#/(+ s)/#i')使用它會更容易閱讀 –
@AlexGittemeier對不起,我仍然是一個新手正則表達式。我的表達式轉義了/,那麼爲什麼當我需要修復特定模式時,我會在那裏放一個#號? – jkushner
http://regexr.com?35obj呢? – 2013-07-29 05:17:32