package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^\s*?((?:virtual\s*|const\s*|friend\s*){0,3})\s*([\w]*?)\s*\w+\s*::\s*([\w]+)\s*(\(.*\))\s*(const)?\s*[{|:]`)
var str = `#include <iostream>
#include <iomanip>
#include "Time.h"
using namespace std;
Time :: Time(const int h, const int m, const int s)
: hour(h), minute (m), second(s)
{}
virtual const void Time :: setTime(const int h, const int m, const int s)
{
hour = h;
minute = m;
second = s;
}
std::string Time :: print() const
{
cout << setw(2) << setfill('0') << hour << ":"
<< setw(2) << setfill('0') << minute << ":"
<< setw(2) << setfill('0') << second << "\n";
}
bool Time :: equals(const Time &otherTime)
{
if(hour == otherTime.hour
&& minute == otherTime.minute
&& second == otherTime.second)
return true;
else
return false;
}`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/