Я пытаюсь обработать некоторые случаи строк с помощью регулярного выражения: (.*note(?:'|")?\s*=>\s*)("|')?(.*?)\2(.*)
Строки:
- note => «примечание идет сюда»,
- note => «примечание идет сюда»,
- note => $ note,
- note => «$ note»,
- note => '$ note' ,
- note => '$ note'
- note => $ note. $ note2 (может go больше, считайте его значением ключа perl га sh)
- # note => '$ note',
Можно быть несколько пробелов в начале / конце / между ними. Мне нужно захватить "
(или '
), $note
, ,
или все, что осталось после note_section. Может быть #
в начале, если эта строка является комментарием, поэтому я включил .*
в начале.
Данное регулярное выражение не работает в случае 3, поскольку \2
равно нулю.
Редактировать: Требуется, чтобы я читал файл и заменял значение примечания на некоторые теги говорят NOTETAG
, и все остальное вокруг остается тем же, включая кавычки и пробелы. Для этого
- нам нужно захватить все с начала до начала записи значения
- Мы должны также захватить кавычки, чтобы я мог записать их точно
- Нам нужно захватить значение примечания
- Мы должны захватить вещи и после значения примечания.
Например, note => "kamal" ,
станет note => "NOTETAG" ,
(обратите внимание, мы не ел ,
с последнего)