2012-06-27 3 views
0

Как заменить строку, начинающуюся с 'a' и заканчивая на 'z'?Заменить с одной пользовательской строки на другую настраиваемую строку

В основном я хочу иметь возможность делать то же, что и str_replace, но быть равнодушным к значениям между двумя строками в «стоге сена».

Есть ли встроенная функция для этого? Если нет, то как я могу эффективно выполнять функцию, которая его выполняет?

+1

звучит как что-то для регулярных выражений –

+1

вы смотрели на http://www.php.net/manual/en/ref.pcre.php – Fluffeh

ответ

0
$string = "I really want to replace aFGHJKz with booo"; 
$new_string = preg_replace('/a[a-zA-z]+z/', 'boo', $string); 
echo $new_string; 

С осторожностью относитесь к регулярному выражению, хотите ли вы найти первый z или последний z? Это только буквы, которые могут быть между ними? Буквенно-цифровой? Существуют различные сценарии, которые вам нужно объяснить, прежде чем я смогу расширить регулярное выражение.

+0

Perfect. Благодарю. Ответ, когда я могу – maxhud

+1

@Rawkode Эй, не то, чтобы это соответствовало только буквенным символам между A и Z вместо всех символов, которые могут быть проблемой. –

+0

Почему ''/a [a-zA-z] + z/''? Поступая таким образом, вы допускаете только символы a-z и A-Z в своей строке. ''/A. * Z/''лучше –

0

использование preg_replace поэтому вы можете использовать шаблоны регулярных выражений.

+0

ли Можете ли вы связать меня с некоторыми хорошими регулярных выражений учебники – maxhud

+0

He уже сделал .. Не говорите мне, что вы прочитали эту страницу за 2 минуты –

1

Это можно сделать с помощью регулярного выражения (для краткости RegEx). Вот простой пример:

$string = 'coolAfrackZInLife'; 
$replacement = 'Stuff'; 
$result = preg_replace('/A.*Z/', $replacement, $string); 
echo $result; 

Приведенный выше пример возвратит coolStuffInLife

Небольшое пояснение на givven RegEx/A.*Z/:
        - Слеши указывают начало и конец регулярного выражения;
        - A и Z - начальный и конечный символы, между которыми необходимо заменить;
        - . соответствует любому одиночному charecter
        - * Ноль или больше данного символа (в нашем случае - все из них)
        - При желании вы можете хотеть использовать + вместо *, который будет соответствовать только в том случае, если есть что-то среднее между

Посмотрите на Rubular.com для простой ва y для проверки ваших регексов. Она также обеспечивает короткий справочный REGEX

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