在php中使用preg_replace之前选择文本

时间:2014-10-09 14:27:48

标签: php preg-replace

我需要采取'文字'来自' text#'。我试试这段代码:

echo preg_replace('/(.*)\#/', '', 'text#');

但它不起作用。我的错误在哪里?

2 个答案:

答案 0 :(得分:1)

您忘记提及您的"文字" - 请参阅$1

echo preg_replace('/(.*)\#/', '$1', 'text#');

答案 1 :(得分:0)

与使用正则表达式完成此任务相反,您可以(或实际上应该)只使用strpossubstr

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;
}

Example