【问题标题】:remove all the special character in start and end of each string using PHP使用 PHP 删除每个字符串开头和结尾的所有特殊字符
【发布时间】:2013-03-25 11:47:50
【问题描述】:

如何使用 PHP 删除每个字符串开头和结尾的所有特殊字符?告诉我怎么做?

示例代码:

$string ="_$#+Hello(+- $^#World2013@!%=+";

从字符串开始和结束位置删除所有特殊字符后。字符串将打印如下:

$string ="Hello(+- $^#World2013";

【问题讨论】:

  • 为什么这个问题得到了投票?定义“特殊字符”(在 50 个左右的其他事情中,您需要解释才能提出一个体面的正则表达式),因为我认为您的结果仍然包含大量“特殊字符”。
  • @Sepster 他想从他的字符串的开头和结尾删除所有特殊字符(不是字母或数字)。所以如果他有$!!Hey_You!,他就会得到Hey_You
  • $string=trim($string, $my_special_characters); 应该这样做,你选择那些“特殊字符”是什么
  • @Waygood 为什么不将其发布为(的)答案?它是为此用例而设计的。

标签: php string preg-replace


【解决方案1】:

Trim 将删除字符串开头和结尾的字符。

$string ="_$#+Hello(+- $^#World2013@!%=+";

$my_special_characters='_$#@!%=+';
$string=trim($string, $my_special_characters);

您可以根据需要更新 $my_special_characters 变量。

【讨论】:

  • +1 不错。如果有专门为这项工作设计的东西,请使用它(尤其是当它有助于避免正则表达式时!);-)
【解决方案2】:
$string ="_$#+Hello(+- $^#World2013@!%=+";

$sub_string = preg_replace("/^([^a-zA-Z0-9])*/", "", $string,1);
$sub_string = strrev(preg_replace("/^([^a-zA-Z0-9])*/", "",strrev($sub_string),1));

var_dump($sub_string); // string(21) "Hello(+- $^#World2013"

【讨论】:

  • @Sepster 确实如此,尽管您需要列出所有可能的特殊字符。他是黑名单,我是白名单。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2020-04-10
相关资源
最近更新 更多