/ / Golang Regex извлечете текст между 2 разделителя - включително разделители - регенерация, низ, отидете

Golang Regex извлича текст между 2 разделителя - включително разделители - регенерация, низ, отидете

Както е посочено в заглавието, имам програма вgolang, където имам низ с повтарящ се модел. Имам начало и край разделители за този модел и бих искал да ги извлека от низ. Следва псевдо код:

string := "... This is preceding text
PATTERN BEGINS HERE (
pattern can continue for any number of lines...
);
this is trailing text that is not part of the pattern"

Накратко това, което се опитвам да направя, е отпримерен по-горе е извличане на всички появявания на модела, който започва с "PATTERN BEGINS HERE" и завършва с ");" И имам нужда от помощ, за да разбера кой е регексът за това.

Моля, уведомете ни, ако е необходима допълнителна информация или контекст.

Отговори:

1 за отговор № 1

Регето е:

(?s)PATTERN BEGINS HERE.*?);

където (?s) е флаг, който да дадете .* отговарят на няколко реда (вж Отидете сигнали за регенерация).

виждам демонстрация


0 за отговор № 2

Не е регенериран, а работи

func findInString(str, start, end string) ([]byte, error) {
var match []byte
index := strings.Index(str, start)

if index == -1 {
return match, errors.New("Not found")
}

index += len(start)

for {
char := str[index]

if strings.HasPrefix(str[index:index+len(match)], end) {
break
}

match = append(match, char)
index++
}

return match, nil
}

РЕДАКТИРАНЕ: Най-добре да обработвате индивидуалния характер като байтове и да върнете байт масив