剥离字符的左侧和右侧


Stripping Left and Right of character

在php中去掉左右字符的最佳方法是什么?我把它向右剥光了,但不知道向左。我试过ltrim,但似乎效果不好。

$rawsubject = 'RE: [#4152] - Registration Issues';
$casenumber_param="]";
$casenumber_strip = strpos($rawsubject,$casenumber_param);
$casenumber = substr($rawsubject,0,$casenumber_strip);

当前输出为:RE: [#4152

我需要去掉[#剩下的所有东西,所以我只剩下4152

有几种方法可以做到这一点,但最好使用正则表达式。这一个的行为与您当前的代码完全相同:找到最后的方括号并隔离它之前的所有连续数字

if (preg_match('/'d+(?='])/', $rawsubject, $matches)) {
    $casenumber = $matches[0];
}

你很可能更喜欢更直接的东西,比如"抓住方括号之间的数字":

if (preg_match('/'[#('d+)']/', $rawsubject, $matches)) {
    $casenumber = $matches[1];
}

在实际操作中查看

当前代码的逻辑扩展只是做另一件事:

$rawsubject = 'RE: [#4152] - Registration Issues';
$casenumber_start="#";
$casenumber_end="]";
$start = strpos($rawsubject,$casenumber_start)+1;
$end  = strpos($rawsubject,$casenumber_end);
$casenumber = substr($rawsubject,$start,$end-$start);

但我会选择基于正则表达式的解决方案。

要去掉那些带有ltrim的东西,你需要这样写:

$rawsubject = ltrim($rawsubject, "RE:[# ");