using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var testString = "BP -1.23e4 5.67";
var mspaces = @"\s+"; // meaning as many spaces as you want
var cdouble = @"([+\-]?(?:0|[1-9]\d*)(?:\.?\d*)(?:[eE][+\-]?\d+)?)"; // meaning capture a double
var shortPattern = String.Join("", "BP", mspaces, cdouble, mspaces, cdouble);
var longPattern = String.Join("", "BP", mspaces, cdouble, mspaces, cdouble, mspaces, cdouble, mspaces, cdouble);
var bpShort = Regex.Match(testString, shortPattern, RegexOptions.IgnoreCase);
var bpLong = Regex.Match(testString, longPattern, RegexOptions.IgnoreCase);
if (bpLong.Success)
{
Console.WriteLine("Long pattern detected"); // !!FALSE-MATCH!!
}
if (bpShort.Success)
{
Console.WriteLine("Short pattern detected");
}
}
}
ICAgIHVzaW5nIFN5c3RlbTsKICAgIHVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKICAgICAKICAgIHB1YmxpYyBjbGFzcyBUZXN0CiAgICB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICB7CiAgICB2YXIgdGVzdFN0cmluZyA9ICJCUCAtMS4yM2U0IDUuNjciOwogICAgIAogICAgdmFyIG1zcGFjZXMgPSBAIlxzKyI7IC8vIG1lYW5pbmcgYXMgbWFueSBzcGFjZXMgYXMgeW91IHdhbnQKICAgIHZhciBjZG91YmxlID0gQCIoWytcLV0/KD86MHxbMS05XVxkKikoPzpcLj9cZCopKD86W2VFXVsrXC1dP1xkKyk/KSI7IC8vIG1lYW5pbmcgY2FwdHVyZSBhIGRvdWJsZQogICAgIAogICAgdmFyIHNob3J0UGF0dGVybiA9IFN0cmluZy5Kb2luKCIiLCAiQlAiLCBtc3BhY2VzLCBjZG91YmxlLCBtc3BhY2VzLCBjZG91YmxlKTsKICAgIHZhciBsb25nUGF0dGVybiA9IFN0cmluZy5Kb2luKCIiLCAiQlAiLCBtc3BhY2VzLCBjZG91YmxlLCBtc3BhY2VzLCBjZG91YmxlLCBtc3BhY2VzLCBjZG91YmxlLCBtc3BhY2VzLCBjZG91YmxlKTsKICAgICAKICAgIHZhciBicFNob3J0ID0gUmVnZXguTWF0Y2godGVzdFN0cmluZywgc2hvcnRQYXR0ZXJuLCBSZWdleE9wdGlvbnMuSWdub3JlQ2FzZSk7CiAgICB2YXIgYnBMb25nID0gUmVnZXguTWF0Y2godGVzdFN0cmluZywgbG9uZ1BhdHRlcm4sIFJlZ2V4T3B0aW9ucy5JZ25vcmVDYXNlKTsKICAgICAKICAgIGlmIChicExvbmcuU3VjY2VzcykKICAgIHsKICAgIENvbnNvbGUuV3JpdGVMaW5lKCJMb25nIHBhdHRlcm4gZGV0ZWN0ZWQiKTsgLy8gISFGQUxTRS1NQVRDSCEhCiAgICB9CiAgICBpZiAoYnBTaG9ydC5TdWNjZXNzKQogICAgewogICAgQ29uc29sZS5Xcml0ZUxpbmUoIlNob3J0IHBhdHRlcm4gZGV0ZWN0ZWQiKTsKICAgIH0KICAgIH0KICAgIH0=