using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^\b(0|[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])\b\h(\.|\b((?=.{1,255}$)(?:xn\-\-)?(?!-)(?!.*--)[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*\.?)\b)(?:\.)?(?!=)(\h(([a-z0-9-]{1,63})((\=\"")[\x21\x23-\x27\x2A-\x3A\x3C-\x7E]{1,255}+(\""))?)?)*?$";
string input = @"230 example.com
56 subsubdomain.subdomain.example.com.thisisaverylongdomainnamewithseventycharacters
89 subsubdomain.subdomain.example.com.thisisaverylongdomainnamewithseventycharacters test
1 gOOglE.com alpn=""h3,h2""
250 exmpla.com test=""test""
250 exmpla.com 33=""3.63""
250 . 33=""363""
1 . alpn=""h3,h2""
1 example.com. alpn=""h3,h2""
2 . test=test
3 . test=""
1 . alpn=""h3,h2"" ipv4hint=""192.0.2.1"" ipv6hint=""2001:db8::1""
1 . alpn=""h3,h2"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1""
1 test.org alpn=""h3,h2"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1""
1 test.org alpn=""h3,h2"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1""
1 test.org alpnfeefefefefefwefwefwefwefwefwefwefwefwefwefwefwefhththegerg=""h3,h2""
1 test.org alpnfeefefefefefwefweefwefwefwefwefwefwefwefwefhththegerg=""h3\,h2""
1 test.org test=""jn7j64m764mi67i4i467nhin0iu4n6nizn4i0n6z34htj0nizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht8303ht834t03h480th3hunizn4i0n4t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hu3ht834t03h480th3hu93hu4nu9o83h""
1 test.org test=""jn7j64m764mi67i4i467nhin0iu4n6nizn4i0n6z34htj0nizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hunizn4i0n6z34htj03ht803ht834t03h480th3hunizn4i0n4t03h480th3hunizn4i0n6z34htj03ht834t03h480th3hu3ht834t03h480th3hu93hu4nu9hho83h""
1 test.org a=""h3,h2"" alpn=""h3,h2""
3 . test
3 . test test test
1 .
1 überall-ist.de
1 xn--berall-ist-8db.de
1 rxn--berall-ist-8db.de
65535 test.org
655357 test.org
65536 test.org
1 example.comalpn=""h3,h2"" ipv4hi-nt=""192.0.2.1"" ipv6hint=""2001:db8::1""
678 tes""t
1 test.org =""test""
";
RegexOptions options = RegexOptions.Multiline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index);
}
}
}
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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx