В настоящее время я пытаюсь использовать Regex для получения значения в синтаксических скобках Усов, например:
Hello {{{ name }}}, {{{greeting}}}. what is your favourite code related website {{ code question website!!! ?? ? }}? here is some random fact {{ random fun fact }}
Я пытаюсь выбрать все, кроме скобок, а также начальные и конечные пробелы(В случае, если пользователь добавляет больше случайно) или, скорее, я хотел бы использовать группы для захвата этих 3 элементов
- группа 1: '{' и ведущий пробел
- группа 2:значение, которое мы хотим
- группа 3: завершающий пробел и '}'
до сих пор я придумал следующее ({{2,3}\s*)([^{}]*)(\s*}{2,3})
, но если вы проверите группы захвата, 2-я группасоответствует тогда значению, которое мы хотим ... Что хорошо, но также и конечный пробел, который должен быть в третьей группе.то есть
- группа 1: '{' и первые пробелы
- группа 2: значение, которое мы хотим получить с конечным пробелом
- группа 3: '}'
Реализация Ruby str.gsub(/({{2,3}\s*)([^{}]*)(\s*}{2,3})/) { |_| $~[1]+Base64.urlsafe_encode64($~[2].strip, padding: false)+$~[3] }