Условный поиск по RegEx (GREP) и замена в BBEdit - как его применить? - PullRequest
0 голосов
/ 30 октября 2019

У меня проблема с поиском и заменой GREP, которую я пытаюсь выполнить в BBEdit.

Вот пример из моего текста:

"instruction":{"main":[{"text":"A text instruction"},{"sound":"01.mp3"

У меня естьИх много, поэтому я хочу сделать несколько шаблонов, а один из этих шаблонов я хочу сделать условным.

Теперь я использую:

Найти

"instruction":{"main":\[{"(text|image|sound)":"(\w+)"},{"(text|image|sound)":"([0-9]+)\.mp3"

Замена 1

Заменить на:

        "instruction": {
            "main": [
                {
                    "\1": "\2"
                },
                {
                    "\3": "\4"
                }
            ]
        },

Но!

Я бы хотел, чтобы тип носителя (текст, изображение или звук) заменялся по-разному в зависимости откакой это тип.

Я пытался использовать (? (Условие) yes-pattern | no-pattern), но я не понимаю, как это работает.

Замена 2

Итак, я хочу, если тип носителя = звук, замените на:

        "instruction": {
            "main": [
                {
                    "\1": "\2"
                },
                {
                    "mediaplayer": {
                        "type": "audio",
                        "display": "inline-button",
                        "autoplay": false,
                        "src": "\4"
                    }
                }
            ]
        },

, замените на «Замена 1».

Так что в принципе я не хочу, чтобы «звук» заменялся на «звук»"но с" медиаплеером ".

Кто-нибудь знает, как написать этот шаблон поиска и замены?

Я был бы очень признателен!

...