Я новичок в регулярных выражениях и пытаюсь запечатлеть определенный паттерн.Есть два слова (name1 и host), которые я хочу захватить между ними все, проблема в том, что иногда «все» между ними может содержать «name1».И если он содержит «name1», он включает в себя все, начиная от предыдущего name1, до следующего слова «host».Таким образом, у меня в основном две "строки" из двух разных имен "name1".
Вот мой пример:
name1{want-this-string}host,name1{want-this-string}host,name1{dont-want-this-string},name1{dont-want-this-either}name1{want-this-string}host
и это регулярное выражение, которое я использую сейчас..
(?<=\bname1\b).*?(?=\bhost\b)
Мой ожидаемый вывод состоит в том, что он соответствует 3 {want-this-string}
, а не {dont-want-this}
.так в основном:
{want-this-string}{want-this-string}{want-this-string}
Но сейчас это захват первых двух {want this string}
, а затем весь этот раздел
{dont-want-this-string},name1{dont-want-this-either}name1{want-this-string}