2010-12-05 79 views
6

我想要一个字符串,并从0-9和 - (破折号)除去任何字符。从字符串只返回0-9和破折号

例子:

,如果我有一个字符串,它看起来像:

10 abc20-30

我怎样才能让这个字符串返回

10-20-30

(地带所有除了数字和连字符)

是否有某种正则表达式来的preg_match或str_replace函数中使用?

回答

2

假设你的数据在$字符串,这将删除所有字符,除了破折号和数字

$string = preg_replace('/[^-0-9]/', null, $string); 
11
$result = preg_replace('/[^\d-]+/', '', $subject); 

[^\d-]匹配除了数字或破折号任何字符; +表示这些中的“一个或多个”,所以相邻的字符将被立即替换。

相关问题