2010-03-17 56 views
0

我有一個字符串ABCD:10,20,,40; 1/1; 1/2,1/3,1/4我想將字符串拆分爲以下幾部分:正則表達式匹配不起作用

ABCD - 分開:

10,20,...,40分開;

1/1 - 分開;

1/2,1/3,1/4 - 分開;

爲什麼下面的正則表達式對我不起作用?

string txt = @"ABCD:10,20,,40;1/1;1/2,1/3,1/4"; 

Regex reg = new Regex(@"\b(?<test>\w+):(?<com>\w+);(?<p1>\w+);(?<p2>\w+)"); 
Match match = reg.Match(txt); 

回答

4

,/字符不會被\w匹配。 \w只能匹配字母,數字和下劃線。

這是更好地使用[^;]+得到的一切,但;的爲你正在嘗試做的事:

new Regex(@"\b(?<test>\w+):(?<com>[^;]+);(?<p1>[^;]+);(?<p2>[^;]+)"); 

我離開test捕獲組單獨,假設它會永遠[a-zA-Z0-9_]+

1

如果您的令牌不能包含:;自己,你可以只拆分的正則表達式:[:;]

相關問題