Вот решение, которое будет работать с любым количеством лексем:
<?php
$string = 'dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/';
$explode = explode(' ', $string);
$lines = array();
for ($i = 0; $i < count($explode); $i += 2) {
$lines[] = $explode[$i] . ' <' . $explode[$i + 1] . '>';
}
$string = implode("\n", $lines);
echo $string;
?>
Выход:
dc: <http://purl.org/dc/terms/>
foaf: <http://xmlns.com/foaf/0.1/>
DEMO
решение Regex (заменить /([^ ]+) ([^ ]+) ?/
с $1 <$2>\n
):
<?php
$string = 'dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/';
$string = preg_replace('/([^ ]+) ([^ ]+) ?/', "$1 <$2>\n", $string);
echo $string;
?>
DEMO
Regex аутопсии:
([^ ]+)
- это группа записи соответствие любой символ, который не является пространством один до бесконечности
[SPACE]
- Буквальный пробел
([^ ]+)
- это группа записи соответствует любому символу, который не является пространство один к бесконечным временам
[SPACE]?
- Необязательный буквального символ пробела
Вы должны написать программу. Попробуйте, если у вас есть проблемы, отправьте их здесь и, возможно, мы сможем вам помочь. –
что вы пробовали до сих пор ..? Любой конкретный шаблон в вашей строке? –