【发布时间】:2009-07-17 19:24:17
【问题描述】:
我正在尝试构建一个正则表达式,它将替换任何不符合以下格式的字符:
任意位数,然后可选(一个小数点,任意位数)
i.e.
123 // 123
123.123 // 123.123
123.123.123a // 123.123123
123a.123 // 123.123
我在 php 中使用 ereg_replace,最接近我管理的工作正则表达式的是
ereg_replace("[^.0-9]+", "", $data);
这几乎是我所需要的(除了它允许任意数量的小数点)
i.e.
123.123.123a // 123.123.123
我的下一次尝试是
ereg_replace("[^0-9]+([^.]?[^0-9]+)?", "", $data);
which was meant to translate as
[^0-9]+ // any number of digits, followed by
( // start of optional segment
[^.]? // decimal point (0 or 1 times) followed by
[^0-9]+ // any number of digits
) // end of optional segment
? // optional segment to occur 0 or 1 times
但这似乎只允许任意数量的数字,没有别的。
请帮忙
谢谢
【问题讨论】:
-
ereg_* 函数已弃用。请改用 preg_*。