8

我目前有

preg_replace('/[^0-9]/s', '', $myvariable); 

例如输入为 GB -3。我当前的行给了我值 3。我希望能够保持减号,以便该值显示 -3 而不是当前输出 3。

4

1 回答 1

14

尝试这个 :

preg_replace('/[^\d-]+/', '', $myvariable); 

正则表达式的细分:

  • //两边都是正则表达式分隔符 - 里面的一切都是正则表达式
  • []表示这是字符类。角色等级规则改变
  • ^内部字符类代表“不”。
  • \d是 [0-9] 的缩写,唯一的区别是它可以在字符类的内部和外部使用
  • -将匹配减号
  • +最后是量词,表示这应该匹配一个或多个字符
于 2012-08-10T02:16:16.550 回答