删除除数字和减号之外的所有内容PHP preg_replace

时间:2012-08-10 02:14:17

标签: php regex preg-replace

我目前已经

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

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

1 个答案:

答案 0 :(得分:12)

试试这个:

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

正则表达式的细分:

    双方的
  • //是正则表达式分隔符 - 里面的所有内容都是正则表达式
  • []表示这是字符类。 Rules change in character class
  • 字符类中的
  • ^代表“不”。
  • \d是[0-9]的缩写,唯一的区别是它可以在字符类的内部和外部使用
  • -将匹配减号
  • +到底是量词,这意味着它应匹配一个或多个字符