, .
. .
\d{3}-\d{2}-\d{4}
. Parse
TryParse
. , TryParse
.
public static SSN Parse(string input)
public static bool TryParse(string input, out SSN result)
, , , . . (EX: ?)
number
dash
number
dash
number
, . , .
private static IEnumerable<Token> Tokenize(string input)
{
var startIndex = 0;
var endIndex = 0;
while (endIndex < input.Length)
{
if (char.IsDigit(input[endIndex]))
{
while (char.IsDigit(input[++endIndex]));
var value = input.SubString(startIndex, endIndex - startIndex);
yield return new Token(value, TokenType.Number);
}
else if (input[endIndex] == '-')
{
yield return new Token("-", TokenType.Dash);
}
else
{
yield return new Token(input[endIndex].ToString(), TokenType.Error);
}
startIndex = ++endIndex;
}
}
source
share