ipv4Octet := rex.Group.Composite(
// One of 250-255 | 200-249 | 0-199.
rex.Group.Define( // 250-255.
rex.Common.Text("25"),
rex.Chars.Range('0', '5'),
).NonCaptured(),
rex.Group.Define( // 200-249.
rex.Chars.Single('2'),
rex.Chars.Range('0', '4'),
rex.Chars.Digits(),
).NonCaptured(),
rex.Group.Define( // 000-199.
rex.Chars.Runes("01").Repeat().ZeroOrOne(),
rex.Chars.Digits(),
rex.Chars.Digits().Repeat().ZeroOrOne(),
).NonCaptured(),
).NonCaptured()
rex.New(rex.Group.Define(
rex.Group.Define(
ipv4Octet,
// Numbers are divided by a dot.
rex.Chars.Single('.'),
).NonCaptured().Repeat().Exactly(3),
ipv4Octet,
)).String() // Or MustCompile or Compile.
|