using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"^(([NnSs+-])?([0-8]?\d(\.\d*)?|90(\.0*)?)([°˚º^~*NnSs+-])*)([,:;\s|\/\\-]+)(([EeWw+-])*([0]?\d?\d(\.\d*)?|1[0-7]\d(\.\d*)?|180(\.0*)?)[°˚º^~*]*([EeWw+-])*)[\s]*$";
string input = @"//check all zeros
0 0
0.0 0.0
0.000 0.000
0.0000 0.0000
//check plus and minus signs
+0 0
+0.0 0.0
+0.000 0.000
+0.0000 0.0000
0 +0
0.0 +0.0
0.000 +0.000
0.0000 +0.0000
+0 +0
+0.0 +0.0
+0.000 +0.000
+0.0000 +0.0000
-0 0
-0.0 0.0
-0.000 0.000
-0.0000 0.0000
0 -0
0.0 -0.0
0.000 -0.000
0.0000 -0.0000
-0 -0
-0.0 -0.0
-0.000 -0.000
-0.0000 -0.0000
0+ 0
0.0+ 0.0
0.000+ 0.000
0.0000+ 0.0000
0 0+
0.0 0.0+
0.000 0.000+
0.0000 0.0000+
0- 0
0.0- 0.0
0.000- 0.000
0.0000- 0.0000
0 0-
0.0 0.0-
0.000 0.000-
0.0000 0.0000-
0+ 0+
0.0+ 0.0+
0.000+ 0.000+
0.0000+ 0.0000+
0- 0-
0.0- 0.0-
0.000- 0.000-
0.0000- 0.0000-
//check hemipshere
0N 0
0.0N 0.0
0.000N 0.00
0.0000N 0.000
0N 0E
0.0N 0.0E
0.000N 0.00E
0.0000N 0.000E
0N 0W
0.0N 0.0W
0.000N 0.00W
0.0000N 0.000W
0S 0
0.0S 0
0.000S 0
0.0000S 0
0S 0E
0.0S 0.0E
0.000S 0.00E
0.0000S 0.000E
0S 0W
0.0S 0.0W
0.000S 0.00W
0.0000S 0.000W
//check degree symbols
0° 0°
0.0° 0.0°
0.000° 0.000°
0.0000° 0.0000°
0˚ 0˚
0.0˚ 0.0˚
0.000˚ 0.000˚
0.0000˚ 0.0000˚
0º 0º
0.0º 0.0º
0.000º 0.000º
0.0000º 0.0000º
0^ 0^
0.0^ 0.0^
0.000^ 0.000^
0.0000^ 0.0000^
0* 0*
0.0* 0.0*
0.000* 0.000*
0.0000* 0.0000*
0~ 0~
0.0~ 0.0~
0.000~ 0.000~
0.0000~ 0.0000~
//check sperators
0,0
0.0,0.0
0.000,0.000
0.0000,0.0000
0-0
0.0-0.0
0.000-0.000
0.0000-0.0000
0:0
0.0:0.0
0.000:0.000
0.0000:0.0000
0;0
0.0;0.0
0.000;0.000
0.0000;0.0000
0|0
0.0|0.0
0.000|0.000
0.0000|0.0000
0/0
0.0/0.0
0.000/0.000
0.0000/0.0000
0\0
0.0\0.0
0.000\0.000
0.0000\0.0000
90,180
45,45
//invalid
90.123 0.0
91.0 0
91.00 0
91.0 0.0
91.00 0.00
0 180.1
0 181
";
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