2010-12-05 8 views
6

Ich möchte eine Zeichenfolge nehmen und alle Zeichen abgesehen von 0-9 und - (Bindestriche).Zurückgeben nur 0-9 und Striche von Zeichenfolge

Beispiel:

wenn ich eine Zeichenfolge, die wie folgt aussieht:

10-abc20-30

Wie kann ich diese Zeichenfolge Rückkehr machen

10-20-30

(Streifen alle Zeichen außer Zahlen und Bindestriche)

Gibt es irgendeine Art von Regex innerhalb preg_match oder str_replace zu benutzen?

Antwort

2

Ihre Daten Unter der Annahme ist in $ string, wird diese alle Zeichen zu entfernen, außer für Striche und Ziffern

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

[^\d-] jedes Zeichen außer Ziffern oder Bindestrich; Die + sagt "eine oder mehrere" von denen, so dass benachbarte Zeichen auf einmal ersetzt werden.

Verwandte Themen