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

时间:2016-12-29 01:40:56

标签: c# regex numbers

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

  

TX-23443FUX3329442等......

从我发现的

\w*\d\w*

像第一个例子一样,不会在破折号之前返回任何字母?

我在网上发现的所有例子似乎都不适合我。任何帮助表示赞赏!

5 个答案:

答案 0 :(得分:2)

如果我理解你的问题你想找到包含3个以上连续数字的所有字符串,例如 TX-23443或FUX3329442 ,那么你想要提取TX-23443和{ {1}}即使字符串中包含FUX3329442也是如此。所以这是可以帮助你的解决方案

-

答案 1 :(得分:2)

假设你的“单词”只有标准的拉丁文字符:A-Z,a-z,0-9和_,这个应该可以做到。

Regex word_with_3_digits = new Regex(@"(?#!cs word_with_3_digits Rev:20161129_0600)
    # Match word having at least three digits.
    \b            # Anchor to word boundary.
    (?:           # Loop to find three digits.
      [A-Za-z_]*  # Zero or more non-digit word chars.
      \d          # Match one digit at a time.
    ){3}          # End loop to find three digits.
    \w*           # Match remainder of word.
    \b            # Anchor to word boundary.
    ", RegexOptions.IgnorePatternWhitespace);

答案 2 :(得分:1)

在javascript中我会写一个像这样的正则表达式:

  

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

我准备了online test

答案 3 :(得分:0)

试试这个:

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

答案 4 :(得分:0)

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

[ - ] \ W [ - ] \ d {3,} [ - ] \ W * [ - ] \ W < / p>