package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?mi)(?=\b[MCDXLVI]{1,6}\b)M{0,4}(?:CM|CD|D?C{0,3})(?:XC|XL|L?X{0,3})(?:IX|IV|V?I{0,3})`)
var str = `Act IX: The End
Act iX: The End
Act Ix: The End
Act ix: The End
Act IX : The End
Act iX : The End
Act Ix : The End
Act ix : The End
i also me
only ii two
the iii three
what about iv
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
XIII
XIV
XV
XVI
XVII
XVIII
XIX
XX
XLIV
XLIX
LXXIX
XCIV
XCIX
C
CI
CII
CIII
CIV
CVI
CIX
CD
CM
CC
CCC
D
DC
DCC
DCCC
CX
CXX
CXIX
CMXCIX
`
var substitution = "\U$0"
fmt.Println(re.ReplaceAllString(str, substitution))
}
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/