Както е посочено в заглавието, имам програма в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
}
РЕДАКТИРАНЕ: Най-добре да обработвате индивидуалния характер като байтове и да върнете байт масив