2011-11-10 45 views
0

我有一個字符串類似於「[aaa] [vad] [adf]」,我想用正則表達式捕獲[]中的數據,並且字符在[]中可以是字符和數字,沒有長度限制。我是正則表達式noob,任何人都可以幫助我嗎? 謝謝。C#正則表達式的幫助,如何匹配這個patttern

+0

我建議你看RegEx作弊表來獲得一個基本想法(http://bit.ly/rQ7m9b)。最好是你可以用你嘗試過的表達式來提問你的問題,並且還沒有能夠開展工作。 –

回答

1

你可以嘗試這樣的事情:

var data = "[asd][dfhg][asfsa243]"; 

var re = new Regex(@"\[([^\]]*)\]"); 

var matches = re.Matches(data); 

for (int i = 0; i < matches.Count; i++) 
{ 
    var m = matches[i]; 
    Console.WriteLine(m.Groups[1]); 
} 

Console.ReadLine(); 

此輸出:

asd 
dfhg 
asfsa243 

正則表達式\[([^\]]*)\]零個或多個字符不屬於]性格和它是相匹配在一對方括號之間([]

1

此正則表達式可能會爲你工作:

\[(\w+)\] 

,如果您使用charword character

0

這裏是我的建議:

\[(\w+)\] 

的charachter將在第一提供這場比賽的小組,如下:

var regex = new Regex(@"\[([\w\d]*)\]"); 
MatchCollection matchCollection = regex.Matches(stringToTest); 
foreach (Match match in matchCollection) 
{ 
    Debug.Print(match.Groups[0].Value); 
} 
-1

你可以嘗試 -

[^\[\]\W]+ 

var matches = System.Text.RegularExpressions.Regex.Matches("[aaa][vad][adf]",@"[^\[\]\W]+").Cast<Match>().Select(m => m.Value); 

這應該忽略任何「[」,「]」和非字字符,將返回「AAA」,「VAD」,並從你的榜樣字符串「ADF」。

+0

downvote的任何原因?以給出的例子顯示爲我工作。 – ipr101

0

這裏ar Ë一些好的資源建設正則表達式的 http://www.regexlib.com http://regexpal.com/

這裏是字母數字的正則表達式:

^[a-zA-Z0-9]+$ 

這裏是如何確保有3個:

/^([a-zA-Z0-9]){3}$/