2010-12-05 11 views
6

Bir dize almak ve 0-9 ile - (kesik çizgiler) dışında herhangi bir karakter çıkarmak istiyorum.Yalnızca 0-9 döndürüyor ve dize gelen çizgiler

Örnek:

Ben görünen bir dize varsa gibi:

10-abc20-30 ben bu dize dönüşünü nasıl yapabilirim

10-20-30

(sayılar ve tire yanında Şerit tüm karakter)

preg_match veya str_replace içinde kullanmak regex çeşit var mı? Verilerinizi varsayarsak

cevap

2

$ dizesinde olduğu, bu tire ve basamak

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

[^\d-] maçları basamak veya çizgi dışında herhangi bir karakter hariç tüm karakterleri kaldırır; +, bunlardan "biri veya daha fazlası" diyor, bu nedenle bitişik karakterler bir defada değiştirilecek.

İlgili konular