正则表达式 - 用PHP中的任何内容替换所有特定的特殊字符

时间:2018-02-07 14:45:34

标签: php regex

我正在尝试从字符串中删除一些特定的特殊字符以及字母

这些是特殊字符/,-‗‖*<>:;^’+。这就是我试过的:

$telephone = preg_replace('[^/,-‗‖*<>:;^’+]', '', $telephone);

示例:adadsdad131231231222/,-‗‖*<>:;^’+22222,应该变为:13123123122222222

但我对正则表达式不太满意。我试图找到与特定字符类似的smth,但不是任何帖子:(你能帮我解决这个问题吗?

UPDATE另一个例子: adadsdad131231231222/,-‗‖*<&>:;^’+22222应该成为131231231222&22222

1 个答案:

答案 0 :(得分:2)

你的正则表达式中存在这些错误:

    开头的
  • ^否定了字符类。所以,我用\
  • 将其转义了 中间的
  • -会让您匹配一系列字符。因此,我将它移到角色类的末尾
  • 您未包含范围a-z

试试这个正则表达式:

(?i)[\^\/,‗‖*<>:;^’+a-z-]+

用空白字符串替换匹配

Click for Demo

<强> Code Result

<强>解释

  • (?i) - 不区分大小写的修饰符
  • (?i)[\^\/,‗‖*<>:;^’+a-z-]+ - 匹配字母或任何字符^/*,{{ 1}},<>:;+