gpt4 book ai didi

.net - 使用 .NET 正则表达式,匹配任何恰好 9 位数字的字符串

转载 作者:行者123 更新时间:2023-12-05 08:44:45 25 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来匹配任何恰好有 9 位数字的字符串。数字可以存在于字符串中的任何位置。

例如,如果您传入以下字符串,您将获得一个匹配项:123456789123aeiou456abc789

这些字符串无法提供匹配123456781234567890

最佳答案

试试这个:

@"^(\D*\d){9}\D*$"

或者使用这个改进版本。它假定您只想匹配 0-9 而不是其他语言中表示数字的其他字符。它还使用非捕获组来提高性能:

"^(?:[^0-9]*[0-9]){9}[^0-9]*$"

以下是其含义的分割:

^        Start of string.(?:      Start a non-capturing group.[^0-9]*  Match zero or more non-digits.[0-9]    Match exactly one digit.)        Close the group.{9}      Repeat the group exactly 9 times.[^0-9]*  Match zero or more non-digits.$        End of string.

Here's a testbed for it:

string regex = "^(?:[^0-9]*[0-9]){9}[^0-9]*$"
string[] tests = {
"123456789",
"123aeiou456abc789",
"12345678",
"1234567890"
};
foreach (string test in tests)
{
bool isMatch = Regex.IsMatch(test, regex);
Console.WriteLine("{0}: {1}", test, isMatch);
}

结果:

123456789: True123aeiou456abc789: True12345678: False1234567890: False

关于.net - 使用 .NET 正则表达式,匹配任何恰好 9 位数字的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com