2012-05-31 71 views
4

我想知道是否有人可以帮我找到一个简单的正则表达式来搜索一个字符串,并找到并拉出4位数字,而且两者之间没有空格。正则表达式 - 在字符串中查找4位数

例如,我试图找到一个字符串,如一年1965年。如果字符串表示“1965年1月30日”,我想拔出“1965年”,我会怎么做呢?

我在互联网上找到了其他人,但我只是得到一个返回的空集。谢谢

+0

他们总是要约会吗?如果是这样,最好转换为'DateTime'对象,然后使用该对象的'.Year'属性。 – ThePower

回答

9

正则表达式\b\d{4}\b将做的伎俩。

+0

visual studio说它不识别\ d转义序列 – user1290653

+2

@ user1290653在字符串的前面添加字符“@”或使用双反斜杠 – MerickOWA

+1

非常感谢。和@MarickOWA我觉得愚蠢,忘了那个哈哈 – user1290653

2

一个例子。只需将其添加到主要方法。

string pattern = @"\d{4}"; 
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex(pattern); 
Console.WriteLine(r.Match("30 Jan 1965")); 
Console.WriteLine(r.Matches("30 Jan 1965 2001 2010 test ").Count); 
// will output 
// 1965 
// 3 
+0

我使用Match BirthYear = Regex.Match(kvpInd.Value.birth.date,@“(? \ b \ d {4} \ b)”); 和 BirthYear.Groups [“BrtYr”]。ToString() – user1290653

相关问题