php отделка специальных символов

У меня есть набор строк, как показано ниже:

fw-sophi.watcon.-.120
d-elain.heckop.-.121
sim.boosh.-.134
bh.-.elain.heckop.-.244

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

sophi.watcon
elain.heckop
sim.boosh
elain.heckop

Это не практично trim() строк, так как их много, как бы я это сделал программно?

2

Решение

Если других шаблонов нет, этого должно быть достаточно:

$input = 'fw-sophi.watcon.-.120
d-elain.heckop.-.121
sim.boosh.-.134
bh.-.elain.heckop.-.244';

if (preg_match_all('~(?<key>\w+\.\w+)~', $input, $matches)) {
print_r($matches['key']);
}

Результирующий массив:

Array
(
[0] => sophi.watcon
[1] => elain.heckop
[2] => sim.boosh
[3] => elain.heckop
)

Объяснение картины:

~                 #pattern start
(                 #start group to capture matched result
?<key>        #give a name to group. see $matches['key'].
\w+           #one or more alphanumeric characters
\.            #dot character. we need to escape it with \
\w+           #one or more alphanumeric characters
)                 #end group
~                 #pattern end
x
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]