1

如何?, #, &, %, =在 PHP 中的某些字符之后删除字符串的剩余部分?有任何想法吗?我试过preg_replace()了,但我无法弄清楚。

4

3 回答 3

0

这应该有效:

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

关于正则表达式模式:
它搜索字符串的开头 (^),然后搜索任何字符 0 次或多次(即组 #1),然后搜索 & 或 % 之类的符号,然后搜索任何字符 0 次或多次。它用组#1 中匹配的字符替换字符串。

于 2012-12-06T00:08:07.027 回答
0

更新,才发现我看错了。你在寻找之前的东西,而不是之后。更新代码:

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

运行后,$part_before_char = 'remember'

于 2012-12-05T23:48:36.593 回答
-1
$str = 'mystring#deletedpartofstring';

$str = preg_replace('/[?#&%=].+/', '', $str);
于 2012-12-05T23:49:22.993 回答