Вырезать строку между строк

logoff

Новичок
Нужно вырезать black_king из строки ,black_queenE8,black_kingA2,black_bishop2C8

буду очень благодарен кто поможет, я перепробовал уже точно около 20-25 ответов в интернете, везде результат был ,black_kingA2
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Реши задачу без регулярок. Разбей по запятым, отрежь два последних символа. Если у тебя искомая строка всегда в одном и том же месте и A2-N8 - всегда идут по 2 символа.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@logoff, ну тогда напиши функцию свою, где все будет учтено. Не надо пытаться решить задачу способами, которые ты не осиливаешь сам. Потом поддержка кода выливается в гемор.
 

logoff

Новичок
с горем по полам сделал 2 функциями,

1 функция находит black_kingA2
2 убирает A2

preg_match('~[_a-z0-9]+A2~', $black_chess_positions, $attacked);
$attacked = str_replace('A2', '', $attacked[0]);
 

AnrDaemon

Продвинутый новичок
А теперь сделай из них одну. Моё разрешение у тебя уже есть.
 

Adelf

Administrator
Команда форума
ты совсем с другой стороны подошел к проблеме.
Видимо тебе надо парсить шахматную нотацию. Видимо, ход в этой начинается всегда с имени фигуры. потом то место где она стоит, либо её ход. Все имена фигур известны заранее(black_king, black_queen). Так что проще завести массив с возможными именами фигур и потом искать их в начале каждой строки. Разумеется, предварительно разделив по запятым на части.
 

AnrDaemon

Продвинутый новичок
@Adelf, мы то это понимаем, но ТС, очевидно, плевать на наше мнение. Его собственное его интересует куда больше.
 
Сверху