C# 正则表达式搜索包含3个或更多数字的字符串

C# 正则表达式搜索包含3个或更多数字的字符串,c#,regex,numbers,C#,Regex,Numbers,我试图找到一种方法,仅当字符串中包含3个或更多数字/数字时,才从字符串中提取单词。它还需要返回整个文本,如 TX-23443或FUX3329442等 根据我的发现 \w*\d\w* 不会像第一个示例那样返回破折号前的任何字母吗 我在网上找到的所有例子似乎都不适合我。感谢您的帮助 试试这个: string strToCount = "Asd343DSFg534434"; int count = Regex.Matches(strToCount,"[0-9]").Count; 如果我正确理解了您

我试图找到一种方法,仅当字符串中包含3个或更多数字/数字时,才从字符串中提取单词。它还需要返回整个文本,如

TX-23443
FUX3329442

根据我的发现

\w*\d\w*
不会像第一个示例那样返回破折号前的任何字母吗

我在网上找到的所有例子似乎都不适合我。感谢您的帮助

试试这个:

string strToCount = "Asd343DSFg534434";
int count = Regex.Matches(strToCount,"[0-9]").Count;

如果我正确理解了您的问题,您希望找到所有包含3+个相等数字的字符串,例如TX-23443或FUX3329442,因此您希望提取
TX-23443
FUX3329442
,即使它在字符串之间包含
-
。这是一个可能对你有帮助的解决方案

string InpStr = "TX-23443 or FUX3329442";
MatchCollection ms = Regex.Matches(InpStr, @"[A-Za-z-]*\d{3,}");
foreach(Match m in ms)
{
    Console.WriteLine(m);
}

假设你的“单词”只有标准的拉丁单词字符:A-Z、A-Z、0-9和Z,那么这个单词就可以做到这一点

Regex-word-u带3位=新的Regex(@“(?#!cs-word-u带3位修订版:201611290600)
#匹配至少有三个数字的单词。
\锚定到单词边界。
(?:#循环查找三位数字。
[A-Za-z#]*#零个或多个非数字字字符。
\一次匹配一个数字。
){3} #结束循环以查找三位数字。
\匹配单词的剩余部分。
\锚定到单词边界。
“,RegexOptions.IgnorePatternWhitespace);

在javascript中,我会编写如下正则表达式:

\S*\d{3,}\S*


我已经准备好了一个。

这一个似乎对我有效,即使最后还有一个破折号


[-]\w[-]\d{3,}[-]\w*[-]\w

你能展示一下你的字符串的样子吗。到目前为止,您所尝试的内容的确切输出是什么?我忘了提及它还需要返回整个文本,就像我忘了提及它还需要返回整个文本,如TX-23443或FUX3329442等。。。我发现“\w*\d\w*”不会像第一个示例那样返回破折号之前的任何字母?请尝试以下方法:\w*\d{3,}\w*,或者如果您还需要破折号:[-]*\w*[-]*\d{3,}[-]*\w*[-]*使用按钮链接更新您的问题。使用您的字符串和期望的字符串