そのため、正規表現で行うすべてのことは、期待どおりに機能しないようです。このステートメントでは、任意の文字を破棄し、最小および最大で 3 桁が必要になると予想していますが、3 桁は必要ありません。確かに文字は許可されていませんが、桁数は何でも構いません。
myReg = new Regex(@"(^[a-z])([0-9]{3,3})*");
^[az] は文字を投げ捨て、[0-9]{3,3} は 3 桁を必要とするはずです。
コードブロック全体を追加することもできますが、考えていませんでした。
userData = phone.Text;
myReg = new Regex(@"(^[a-z])([0-9]{3})+");
foreach (var validName in myReg.Matches(userData))
{
if (myReg.IsMatch(userData))
{
phone.Clear();
badData.Visible = true;
phone.Focus();
}
}