2010-12-05 11 views
6

से डैश मैं एक स्ट्रिंग ले, और 0-9 और से अलग कोई भी वर्ण पट्टी चाहते हैं - (डैश)।रिटर्निंग केवल 0-9 और स्ट्रिंग

उदाहरण:

अगर मैं एक स्ट्रिंग है लग रहा है जैसे:

10-abc20-30

मैं इस स्ट्रिंग वापसी कैसे कर सकते हैं

10-20-30

(पट्टी सभी संख्याएं और डैश के अलावा वर्ण)

वहाँ regex के preg_match या str_replace भीतर उपयोग करने के लिए किसी तरह का है?

उत्तर

2

अपने डेटा मान लिया जाये कि $ स्ट्रिंग में है, इस डैश और अंक

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

[^\d-] मैचों अंक या पानी का छींटा को छोड़कर किसी भी चरित्र को छोड़कर सभी पात्रों को हटा देगा; + "एक या अधिक" उन लोगों में से है, तो आसन्न पात्रों को एक बार में बदल दिया जाएगा कहते हैं।

संबंधित मुद्दे