2012-05-17 1 views
2

Я знаю, как вырезать лишние пробелы, тире и периоды, используя preg_replace(), но мне нужно знать, какой формат ниже подходит для удаления лишних звездочек в строка.Как удалить лишние звездочки в строке с помощью preg_replace()

Эти строки кода работы для зачистки лишних пробелов, тире и периоды:

// Strips out extra spaces 
    $string = preg_replace('/\s\s+/', ' ',$string); 
// Strips out extra dashes 
    $string = preg_replace('/-+/', '-', $string); 
// Strips out extra periods 
    $string = preg_replace('/\.+/', '.', $string); 

Что из нижеследующего является правильным для зачистки дополнительные звездочки?

// Version 1: Strips out extra asterisks 
    $string = preg_replace('/\*+/', '*', $string); 

// Version 2: Strips out extra asterisks 
    $string = preg_replace('/*+/', '*', $string); 

Заранее спасибо.

Кстати, есть ли список где-то, где отображаются все символы, которые нужно сбрасывать с помощью косой черты при использовании PHP?

ответ

3

Попробуйте это:

$string = preg_replace('/\*{2,}/', '*', $string); 

Это заменит все экземпляры нескольких звездочек рядом друг с другом с одной звездочкой.

Или, если вы хотите, чтобы просто избавиться от всех звездочек:

$string = preg_replace('/[\*]+/', '', $string); 

Стоит отметить, что * специальный символ в регулярных выражениях; поэтому вы должны избегать этого с помощью обратного слэша.

Кроме того, здесь хорошая ссылка регулярного выражения: http://www.regular-expressions.info/reference.html

Вот как можно объединить несколько замен символов в один регулярное выражение:

$string = preg_replace('/(\*|\.){2,}/', '$1', $string); 

Это заменит звездочки, а также периоды.

+0

спасибо. Вы порекомендовали бы, чтобы я использовал этот формат вместо приведенных выше, чтобы убрать лишние пробелы, тире и периоды? – Sammy

+0

Ya, если ваша цель состоит в том, чтобы заменить экземпляры двух или более символов одним из них, это хорошее решение. Вероятно, все это кипит до одного регулярного выражения. –

+0

еще раз спасибо c.hill – Sammy

 Смежные вопросы

  • Нет связанных вопросов^_^