Заключить в скобки часть строки с условием
Есть фрагмент программы с GCODE. (Это пример)
G1X-10.599Z12
X9.4Y800
Y70.190
X18.3
X25Z13
Чтобы сделать макрос требуется заключить значение X в квадратные скобки.Должно получиться так:
G1X[-10.599+#1]Z12
X[9.4+#1]Y800
Y70.190
X[18.3+#1]
X[25+#1]Z13
как можно это сделать с помощью регулярных выражений?
Начало я могу заменить так:
/X/g ==> /X[/
Конец не удаётся сделать.
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
re.sub(r'X([^A-Z]+)', r'X[\1+#1]', text)
См. пример регулярного выражения.
X- символX([^A-Z]+)- Подмаска №1: один и более символов, отличных от заглавных латинских букв.
Код:
import re
texts = ["G1X-10.599Z12", "X9.4Y800", "Y70.190", "X18.3", "X25Z13"]
for s in texts:
print( re.sub(r"X([^A-Z]+)", r"X[\1+#1]", s) )
Результат:
G1X[-10.599+#1]Z12
X[9.4+#1]Y800
Y70.190
X[18.3+#1]
X[25+#1]Z13