Попробуйте следующее регулярное выражение:
^\{\$\K[^}]*(?=\})
Regex101 Demo
Это выражение соответствующего два запуска из-строки ^
тогда буквального {
тогда буквальный $
то игнорирует тех, кто использует \K
якоря, то он соответствует один или несколько символам, которые не являются }
то смотрит вперед (?=\})
для литерала }
.
Вы не можете нуждаться в конце-строки якорь $
, потому что текст, который вы пытаетесь соответствовать не может заканчиваться в конце строки, и вы, возможно, не потребуется начало-строки ^
якоря по противоположной причине , то есть шаблон, который вы пытаетесь сопоставить, может не быть в начале строки или строки.
Я думаю, вы должны удалить ^
и $
и использовать глобальный модификатор.
Почему вы используете '^' и '$' - значение должно быть записано, только если вся содержащая строка соответствует правилу? –
a^{\ $ (. *)} Даст вам совпадение в массиве совпадений. Вам не нужен последний $ в вашем регулярном выражении, потому что он соответствует концу строки, но искомое значение не находится в конце. – Christoph