Я новичок в Notepad++ и регулярных выражениях, и мне действительно сложно решить эту проблему.
0:6[105][56]
0:6[105][55]
0:6[105][54]
0:6[104][53]
?:?[??][??] -> где числа могут быть любыми
Я пробовал использовать Find:
- Найти (:)|(])
- Заменить (][)|(->connectedwaypoints.push_back)
Кажется, это не работает.
Ниже представлен желаемый мной результат.
WarpPoints[0]->paths_connected[6]->connectedwaypoints.push_back(HiFiWaypoints[105][56]);
WarpPoints[?]->paths_connected[?]->connectedwaypoints.push_back(HiFiWaypoints[?][?]);
? может быть любым заданным числом, я хочу заменить не числа, а все остальное.
решение1
Попытаться найти:
([0-9]):([0-9])(\[[0-9]+\]\[[0-9]+\])
И заменить на
WarpPoints[\1]->paths_connected[\2]->connectedwaypoints.push_back\(HiFiWaypoints\3\)\;
Режим поиска должен быть «Регулярное выражение».
Объяснение:
Для части поиска
[0-9]
означает любые цифры,\[
а\]
означает сопоставление любого[
и]
соответственно.(
и)
сделает все, что находится внутри скобок, указанных в «заменить на», как\1
\2
и т. д.Что касается части replace with, то все довольно очевидно: где
\1
находится содержимое в первой паре скобок,\2
где находится содержимое во второй паре и т. д.
Если вы не уверены в значении других символов, введите в Google «регулярное выражение».