Я хотел бы regexp или другую строку, которая может заменить все, кроме буквенно-цифровых символов ( az
и 0-9
) из строки. Все вещи, такие как ,@#$(@*810
должны быть лишены. Любые идеи?
Изменить: мне теперь нужно это, чтобы разбить все, но разрешить точки, так что все, кроме az, 1-9, .
, Идеи?
$string = preg_replace("/[^a-z0-9.]+/i", "", $string);
Соответствует одному или нескольким символам не az 0-9 [без учета регистра] или «.» и заменяется на ""
Мне нравится использовать [^ [: alnum:]] для этого, меньше места для ошибки.
preg_replace('/[^[:alnum:]]/', '', "(ABC)-[123]"); // returns 'ABC123'
/[^a-z0-9.]/
должен сделать трюк
Пытаться:
$string = preg_replace ('/[^a-z0-9]/i', '', $string);
/ i означает нечувствительность к регистру (если вам это нужно, конечно).
Это также заменяет ничего, кроме цифры, символа слова или периода с подчеркиванием. Полезно для имен файлов.
$clean = preg_replace('/[^\d\w.]+/', '_', $string);