Имеется список конфигурации, которые нужно отформатировать для наглядности и лучшего представления данных, но в регулярных выражениях я не очень разбираюсь и всякие онлайн сервисы мне особо не помогли.
Пример: Имеется конфигуратор на входе 1s2.2s2.3p6.(3D).5d (строка)
Нужно преобразовать его в следующий вид:
1s22s23p6(3D)5d
Единственное что я смог сделать, это использовать 3 цикла и 5 условий, но все это мне не поможет, т.к. если после буквы (s,p,d,f) будет идти не 1 цифра, а несколько, то только первая войдет в тег. Также скобки
я не смог добавить в условия. В моем случаи получается очень много кода, в котором легко запутаться.
Сергей Семенко: к сожалению точки остались. Прошу прощения, что не могу ничего своего добавить, т.к. регулярные выражения для меня как неизвестный язык(
Я сделал из кусочков предыдущих примеров + в конце обрезал точки.
Ваш пример тоже работает, поэтому и его сохраню. К сожалению мне уже встречаются записи где не везде точки есть, а это очень проблематично.
Если приведете примеры данных, на которых код не работает, я бы смог вам помочь. Вообще, напишите юнит-тесты, в тестировании регулярок они очень помогают. Гуглить нужно по словам phpunit tutorial, например, https://phpunit.de/getting-started.html.
Алексей Шеин: прошу прощения, что отвечаю так поздно. Примеры, которые отличаются от того, что являются неверными и обработка их не требуется. Мне интересен лишь 1 момент, если после буквы будет идти не 1 цифра, а 2 и более, то только 1 цифра отправится в sup, остальное останется без изменений. Как можно обойти это?
Пример:
Вход 1s23.2s234.3p6.(3D).5d
Выход 1s232s2343p6(3D)5d