我正在尋找一種方式寫在只有一個preg_replace
簡單的regex不
$url = "stackoverflow";
if(!preg_match('/apple/',$url)){
$url = $url.".apple.com";
}
我正在尋找一種方式寫在只有一個preg_replace
簡單的regex不
$url = "stackoverflow";
if(!preg_match('/apple/',$url)){
$url = $url.".apple.com";
}
$str = 'something';
echo preg_replace('/^(?:(?!apple).)*$/is', '$0.apple.com', $str);
PS如下:修飾符is
可能是有用的。
(?:)*
使得非捕獲模式。它匹配零個或多個(?!apple)
的實例。當模式匹配時,除apple
和$0
之外的任何東西都告訴取整串。上述示例並不相同,因爲當字符串不以apple
開頭時,它會匹配任何內容,因爲?!apple
條件僅在字符串的開始處應用一次。
你想完成什麼?你想要像「stackoverflow.com.apple.com」這樣的網址嗎? – 2012-01-30 22:19:27
讓我們說沒有TLD的url =「stackoverflow」 – ThomasReggi 2012-01-30 22:20:06
Err你的問題沒有意義。字符串是否總是以蘋果結尾?如果沒有,那麼你不能使用正則表達式追加到一個字符串。 – CBusBus 2012-01-30 22:21:07