Как написать регулярное выражение для «всего между X и Y» для использования с preg_replace - PullRequest
1 голос
/ 03 июня 2010

Я хочу взять переменную с именем $ encoded_str и удалить cd1, CD1 и все, что находится между первым 'l' и последним пробелом. Так, например, «lp6 id4 STRINGcd1» вернет «STRING».

Я сейчас использую PHP 4, поэтому я не могу использовать str_ireplace, у меня есть это:

$encoded_str=str_replace('CD1','',$encoded_str);
$encoded_str=str_replace('cd1','',$encoded_str);
$encoded_str=preg_replace('X','',$encoded_str);

У меня RTM для preg_replace, но я немного запутался. Чем я должен заменить X и можете ли вы предложить достойный вводный учебник для написания регулярных выражений?

1 Ответ

0 голосов
/ 03 июня 2010
$encoded_str=preg_replace('/l.*(?<=\s)/','',$encoded_str);

Приведенное выше регулярное выражение будет соответствовать чему угодно, начиная с первого l в строке и заканчивая последним пробелом. В качестве конечной точки для .*, который потребляет первую часть строки, используется положительный вид сзади. Так как .* является жадным, просмотр будет соответствовать последнему символу пробела, который он может.

Что касается ссылок, эти страницы великолепны:

http://www.regular -expressions.info / tutorial.html

...