所以我用Regex做的一切似乎都没有达到我的预期。这句话,我希望抛出任何字母,最少需要3位数字,但不需要3位数字。它确实不允许使用字母,但任何数字都是好的。
myReg = new Regex(@"(^[a-z])([0-9]{3,3})*");
我希望^ [a-z]抛出字母而[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();
}
}
答案 0 :(得分:1)
匹配
One character that isn't a letter from a to f, stored in a backreference,
followed by zero or more instances of:
3 characters that are digits from 0-9
stored in another backreference.
我认为你需要:^[0-9]{3}+$
匹配包含以下内容的字符串:
One or more instances of:
3 characters that are digits from 0-9
如果您只需要一个包含3个以上字符且完全由数字组成的字符串,则可以使用:^[0-9]+$
答案 1 :(得分:1)
请尝试使用此选项,只需要三位数字:
var regex = new Regex(@"^\d{3}$");
答案 2 :(得分:0)
我认为*指的是你可以放任意数量的字符。尝试删除" *"并看看它是否有效。
答案 3 :(得分:0)
试试这个:
"(\+?\d{1,5}(?:[\s_-]{0,1}\d{2,4}[\s_-])+)"
答案 4 :(得分:0)
^(?=.{3,10})([2-9]\d{2,9})
^(?=.{3,10})
从一开始,必须至少有3个项目,但不得超过10个[2-9]
没有美国号码可以以1开头,因此请确保2-9的范围是允许的第一个号码的范围。\d{2,9}
国家/地区必须有2个以上的9个数字。