Как использовать регулярные выражения для изменения массива Java в Atom?

Мне нужно переместить 4-е измерение моего массива Java в 1-е измерение:

myArray[a][...][...][b]

к

myArray[b][...][...][a]

Мне нужно сделать это для всех имен измерений. Моя идея состоит в том, чтобы сделать это с помощью функции поиска и замены в Atom с использованием регулярных выражений, но я недостаточно знаком с ними, чтобы сделать это быстро. В принципе, это то, что я ищу:

myArray([][][])([])

к

myArray([])([][][])

Было бы замечательно, если бы вы предоставили мне необходимые для этого поля «Найти и заменить».

Просто найдите [b] и замените на [a], затем сделайте все наоборот, но пропустите 4-е измерение в конце??

Bailey Kocin 21.01.2019 19:13

Моя проблема в том, что массив принимает множество форм, а проект огромен. Например, иногда массив имеет следующую форму: myArray[a][b][c][d], а иногда — такую ​​форму: myArray[e][f][g][h]. Мне нужно учитывать все, что может быть в этих скобках.

Bill 21.01.2019 19:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
76
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используйте это регулярное выражение:

myArray(\[.+?])(\[.+?]\[.+?])(\[.+?])

И эта замена:

myArray$3$2$1

Объяснение:

Регулярное выражение соответствует myArray, за которым следуют три набора квадратных скобок. Он захватывает первую пару скобок в группу 1, вторую и третью пары в группу 2 и последнюю пару в группу 3.

Заменой является myArray, за которым следует то, что находится в группе 3, затем то, что находится в группе 2, и, наконец, то, что находится в группе 1.

Демо

Если одно из индексных выражений содержит сам [ ... ], это не сработает.

Henry 21.01.2019 19:21

Это именно тот ответ, который я искал. Теперь я смогу опираться на это для будущих приложений. Спасибо, и я приму этот ответ как можно скорее.

Bill 21.01.2019 19:23

Что здесь делает вопросительный знак? Я удалил все вопросительные знаки и получил меньше просмотров.

Bill 21.01.2019 19:34

@Bill Знак вопроса означает «ленивый». См. stackoverflow.com/questions/2301285/…

Sweeper 21.01.2019 19:34
Ответ принят как подходящий

Это также работает:

Находка: myArray(\[[^\]]*\])(\[[^\]]*\]\[[^\]]*\])(\[[^\]]*\])

Заменить: myArray$3$2$1

Другие вопросы по теме

Как написать регулярное выражение, которое позволяет комментировать в конце строки, не отключая блокировку шрифта для строки в основном режиме Emacs
Как создать регулярное выражение, которое фиксирует только те слова, которые создаются путем многократного добавления подстроки (например, ab) слова?
Функция JavaScript для регулярного выражения поиска цен и определения валюты
Запрос записей, которые начинаются/заканчиваются строкой, в границах слов с использованием REGEXP (MySql)
Помощь в сопоставлении строки регулярного выражения с javascript, особый случай
Как запустить список регулярных выражений perl из файла в терминале
Как извлечь строку из предложения, используя регулярное выражение в R?
Регулярное выражение до символа, но если ему не предшествует другой символ
Регулярное выражение Python для соответствия определенной позиции строки
Получить URL-адрес mp3 с html-страницы, используя preg_match_all