Regex, чтобы найти все кавычки в квадратных скобках - PullRequest
1 голос
/ 28 апреля 2020

Кажется довольно простым, но я не могу найти ничего, что работает. Просто хочу захватить все двойные кавычки в квадратных скобках, чтобы я мог заменить их пустой строкой. Значения в квадратных скобках всегда находятся между [0-9].

Спасибо за вашу помощь.

Вход

    "someText"=["1111","2222"]

Выход

    "someText"=[1111,2222]

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Регулярные выражения - это инструмент, который работает, когда ввод регулярный . Это специфический c бит жаргона с очень конкретным c значением.

Итак, если у вас есть вход , а не обычный , a регулярное выражение не может разобрать это. Этот формат выглядит как JSON. И вот плохие новости: JSON не является регулярным :( Вы просто не можете разобрать его с помощью регулярных выражений. Вы пишете мне регулярное выражение, которое, кажется, работает, я сделаю вам некоторые JSON, что ваш заменитель регулярных выражений испортит наверх.

Вы можете исправить это, добавив причудливые предостережения к тому, что JSON может быть введено в ваше замысловатое регулярное выражение, но кажется намного, намного лучшей идеей добавить парсер JSON в ваш код и используйте это.

0 голосов
/ 28 апреля 2020

В моем случае элементы массива всегда будут целыми числами, просто заключенными в кавычки. Между кавычками не должно быть специальных символов, только [0-9].

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

    public static void main(String[] args)
    {
        System.out.println(args[0].replaceAll("\"(?=[^\\[]*])", ""));
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...