0
我需要從'文本#'中取'文本'。我試試這個代碼:在php中使用preg_replace之前選擇文本
echo preg_replace('/(.*)\#/', '', 'text#');
但它不起作用。我的錯誤在哪裏?
我需要從'文本#'中取'文本'。我試試這個代碼:在php中使用preg_replace之前選擇文本
echo preg_replace('/(.*)\#/', '', 'text#');
但它不起作用。我的錯誤在哪裏?
您忘了提及你的「文字」 - 看到$1
:
echo preg_replace('/(.*)\#/', '$1', 'text#');
,而不是使用正則表達式完成這個任務,你可能(或實際上應該)只使用strpos
和substr
:
echo substr_before('test#', '#')."\n"; // test# -> test
echo substr_before('foo#bar', '#'); // foo#bar -> foo
function substr_before($haystack, $needle) {
// check if $haystack contains $needle, if so directly get the index of $needle
if (($index = strpos($haystack, $needle)) !== false) {
// chop off $needle and everything that trails it
return substr($haystack, 0, $index);
}
return $haystack;
}
你這話是什麼呢? – Tushar 2014-10-09 14:31:32
什麼'不工作'? – Toto 2014-10-09 14:32:01
你只需要閱讀一個基本的教程,你試圖做的事情是非常簡單的。 – 2014-10-09 14:33:07