Переместить несколько букв в строке с помощью регулярных выражений

Используя регулярное выражение, я хочу переместить две буквы в строке.

W28
L36
W29-L32

Должен быть изменен на:

28W
36L
29W-32L

Числа варьируются между 25 а также 44, Буквы, которые нужно переместить, всегда обозначаются буквой «W» и / или «L», а буква «W» всегда первая, когда они обе существуют в строке.
Мне нужно сделать это с помощью одного регулярного выражения с использованием PHP. Любые идеи будут потрясающими!

РЕДАКТИРОВАТЬ:
Я новичок в регулярных выражениях и много чего перепробовал безуспешно. Ближайший, который я пришел, использовал "/\b(W34)\b/" для каждой возможности. Я также нашел кое-что об использовании переменных в функции замены, но мне не повезло с их использованием.

-1

Решение

Ваше регулярное выражение \b(W34)\b точно соответствует W34 как целое слово. Тебе необходимо класс персонажа соответствовать W или же Lи некоторые альтернативы, чтобы соответствовать числовому диапазону, и использовать большинство захват групп.

Вы можете использовать следующую замену регулярных выражений:

$re = '/\b([WL])(2[5-9]|3[0-9]|4[0-4])\b/';
$str = "W28\nL36\nW29-L32";
$result = preg_replace($re, "$2$1", $str);
echo $result;

Увидеть IDEONE демо

Вот, ([WL]) соответствует и захватывает либо W или же L в группу 1 и (2[5-9]|3[0-9]|4[0-4]) сопоставляет целые числа от 25 до 44 и захватывает в группу 2. Обратные используются для изменения порядка групп в строке замены.

И вот демонстрация регулярных выражений в случае, если вы хотите настроить его позже.

2

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

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

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