I have this pattern here:
string pattern = @".?";
string input = "o";
foreach (Match match in Regex.Matches(input, pattern))
Console.WriteLine("<{0}> found at position {1}.", match.Value, match.Index);
For some reason it returns the following:
<o> found at position 0.
<> found at position 1.
Why does it return <> found at position 1. ?
I mean It already returned the <o> so it should not return anythiung else.
>Solution :
Well, pattern
.?
means
any symbol (
.) zero or one times (?)
In your case – "o" – you have 2 matches:
o
^^
|| <- position 1: any symbol zero times (empty string)
| <-- position 0: any symbol one time ('o')