Я видел другие подобные вопросы, но все они были связаны с совпадением в начале в конце, и это не то, что я ищу.Regex - Соответствие шаблону, не содержащему строку
Я хочу, чтобы соответствовать параметрам с синтаксисом:
{{param-name}}
или {{param-name=default value}}
До сих пор у меня есть следующее регулярное выражение:
(\{\{[a-zA-Z0-9_-]*(?:=.*)?\}\})
Но проблема в том, что если есть более один параметр, он создает только одно совпадение: от начала первого до конца последнего. Например:
bla bla {{foo=blabla}} bla bla {{bar=hehe}} bla bla
будет соответствовать: {{foo}} bla bla {{bar=hehe}}
в то время как я хочу {{foo}}
и {{bar=hehe}}
Поэтому мне нужно проверить, что после =
характера, нет }}
строки перед }}
завершения параметра.
Я не знаю, как это сделать. Вы можете мне помочь ? Спасибо :)
PS: Я использую это на Java, если это имеет значение.
Благодаря это работает. Не могли бы вы объяснить мне второй вариант? Я видел вещи о!! но я их не понимал. Спасибо. – Virus721
Я думаю, теперь будет ясно. –
Да, его ясное спасибо, но я понимаю, что это проблема. Только первый параметр сопоставляется, как вы можете видеть здесь: 'https: // www.regex101.com/r/aQ4mF3/1'. Почему второй не подходит? – Virus721