2012-12-05 103 views

回答

0

更新,刚刚意识到我读错了。你之前正在寻找东西,而不是之后。更新代码:

$test_string = 'remember?forget'; 
preg_match('/([^?#&%=]+)/', $test_string, $matches); 
$part_before_char = $matches[1]; 

运行后,$ part_before_char = '记得'

-1
$str = 'mystring#deletedpartofstring'; 

$str = preg_replace('/[?#&%=].+/', '', $str); 
+0

你有正确的想法,但代码没有工作 – user962449

+0

它在我的主机上工作..... –

+0

为什么它被投票? :/ – user962449

0

这应该工作:

$str = "Hello World#somesuffixstr"; 
preg_match("/^(.*?[?#&%=]).*/", $str, $str); 
echo $str[1]; 
// Should output "Hello World#" 

关于正则表达式模式:
它搜索字符串的开头(^),然后对于任何字符0次或更多次(它是组#1),那么这样的符号如&或%,则任何字符零次或多次。它将字符串替换为组#1中匹配的字符。

相关问题