我需要采取'文字'来自' text#'。我试试这段代码:
echo preg_replace('/(.*)\#/', '', 'text#');
但它不起作用。我的错误在哪里?
答案 0 :(得分:1)
您忘记提及您的"文字" - 请参阅$1
:
echo preg_replace('/(.*)\#/', '$1', 'text#');
答案 1 :(得分:0)
与使用正则表达式完成此任务相反,您可以(或实际上应该)只使用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;
}