|
@ -19,9 +19,9 @@ const ( |
|
|
iriChar = letter + mark + number |
|
|
iriChar = letter + mark + number |
|
|
currency = `\p{Sc}` |
|
|
currency = `\p{Sc}` |
|
|
otherSymb = `\p{So}` |
|
|
otherSymb = `\p{So}` |
|
|
endChar = iriChar + `/\-+_&~*%=#` + currency + otherSymb |
|
|
|
|
|
|
|
|
endChar = iriChar + `/\-+&~%=#` + currency + otherSymb |
|
|
otherPunc = `\p{Po}` |
|
|
otherPunc = `\p{Po}` |
|
|
midChar = endChar + `|` + otherPunc |
|
|
|
|
|
|
|
|
midChar = endChar + "_*" + otherPunc |
|
|
wellParen = `\([` + midChar + `]*(\([` + midChar + `]*\)[` + midChar + `]*)*\)` |
|
|
wellParen = `\([` + midChar + `]*(\([` + midChar + `]*\)[` + midChar + `]*)*\)` |
|
|
wellBrack = `\[[` + midChar + `]*(\[[` + midChar + `]*\][` + midChar + `]*)*\]` |
|
|
wellBrack = `\[[` + midChar + `]*(\[[` + midChar + `]*\][` + midChar + `]*)*\]` |
|
|
wellBrace = `\{[` + midChar + `]*(\{[` + midChar + `]*\}[` + midChar + `]*)*\}` |
|
|
wellBrace = `\{[` + midChar + `]*(\{[` + midChar + `]*\}[` + midChar + `]*)*\}` |
|
@ -72,9 +72,11 @@ func strictExp() string { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func relaxedExp() string { |
|
|
func relaxedExp() string { |
|
|
site := domain + `(?i)` + anyOf(append(TLDs, PseudoTLDs...)...) + `(?-i)` |
|
|
|
|
|
|
|
|
punycode := `xn--[a-z0-9-]+` |
|
|
|
|
|
knownTLDs := anyOf(append(TLDs, PseudoTLDs...)...) |
|
|
|
|
|
site := domain + `(?i)(` + punycode + `|` + knownTLDs + `)(?-i)` |
|
|
hostName := `(` + site + `|` + ipAddr + `)` |
|
|
hostName := `(` + site + `|` + ipAddr + `)` |
|
|
webURL := hostName + port + `(/|/` + pathCont + `?|\b|$)` |
|
|
|
|
|
|
|
|
webURL := hostName + port + `(/|/` + pathCont + `?|\b|(?m)$)` |
|
|
return strictExp() + `|` + webURL |
|
|
return strictExp() + `|` + webURL |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|