0

因此,似乎我对 Regex 所做的一切都没有达到我的预期。这个声明,我希望扔掉任何字母,并且至少需要 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();
            }
        }
4

5 回答 5

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]+$

于 2012-10-30T18:17:06.087 回答
1

试试这个,只需要三个数字:

var regex = new Regex(@"^\d{3}$");
于 2012-10-30T18:17:11.327 回答
0

我认为 * 指定您可以放置​​任意数量的字符。尝试删除“*”,看看它是否有效。

于 2012-10-30T18:17:25.873 回答
0

试试这个:

"(\+?\d{1,5}(?:[\s_-]{0,1}\d{2,4}[\s_-])+)"
于 2012-10-30T18:22:55.137 回答
0
^(?=.{3,10})([2-9]\d{2,9})
  • ^(?=.{3,10})从一开始必须至少有 3 个项目,但不超过 10 个
  • [2-9] 任何美国号码都不能以 1 开头,因此请确保 2-9 的范围是允许的第一个号码的范围。
  • \d{2,9} 说明 2 个最多 9 个数字必须在匹配中。
于 2012-10-30T19:44:57.537 回答