Вам нужно передать значение соответствия методу обратного вызова или использовать его как
DATETIME
В =?
вашем исходном решении передается =
как буквальная $1
строка и, следовательно, не работает должным образом. Эти замены обратной ссылки могут использоваться только в шаблонах замены строк, но не могут использоваться, когда совпадение требует дальнейших манипуляций.
Обратите внимание, что я слегка изменил шаблон, чтобы он соответствовал:
([^$]*)
-$
символDATETIME
- буквальная подстрока$
- 1 или 0=
символов$
- Группа 1 (значение, полученное здесь, будет использовано для генерации строки datetime): любые символы 0+, кроме$
(если в одной строке больше 1 совпадения, она все равно будет работать и будет соответствовать быстрее, чем жадный ( или даже ленивый) точечный рисунок)$
-$
символ