我试图找到一种从字符串中提取单词的方法,只要它在该单词中包含3个或更多数字/数字。它还需要返回整个文本,如
TX-23443
或FUX3329442
等......
从我发现的
\w*\d\w*
像第一个例子一样,不会在破折号之前返回任何字母?
我在网上发现的所有例子似乎都不适合我。任何帮助表示赞赏!
答案 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)
答案 3 :(得分:0)
试试这个:
string strToCount = "Asd343DSFg534434";
int count = Regex.Matches(strToCount,"[0-9]").Count;
答案 4 :(得分:0)
这个似乎对我有用,即使最后还有一个破折号。
[ - ] \ W [ - ] \ d {3,} [ - ] \ W * [ - ] \ W < / p>