2008-08-12 36 views

Trả lời

7
int indexVal = 0; 
Regex re = new Regex(@"Index: (\d*)") 
Match m = re.Match(s) 

if(m.Success) 
    indexVal = int.TryParse(m.Groups[1].toString()); 

tôi có thể có số lượng nhóm sai, nhưng bạn sẽ có thể để con nó ra từ đây.

1

Bạn sẽ muốn sử dụng các nhóm phù hợp, vì vậy cái gì đó như ...

Regex MagicRegex = new Regex(RegexExpressionString); 
Match RegexMatch; 
string CapturedResults; 

RegexMatch = MagicRegex.Match(SourceDataString); 
CapturedResults = RegexMatch.Groups[1].Value; 
7

Tôi nghĩ rằng Patrick đóng đinh này một - gợi ý duy nhất của tôi là phải nhớ rằng nhóm regex tên tồn tại, quá, vì vậy bạn không để sử dụng số chỉ mục mảng.

Regex.Match(s, @"Index (?<num>\d*)").Groups["num"].Value 

tôi thấy regex là dễ đọc hơn một chút theo cách này là tốt, mặc dù opinions vary ...

1

Đó sẽ là

int indexVal = 0; 
Regex re = new Regex(@"Index: (\d*)"); 
Match m = re.Match(s); 

if (m.Success) 
    indexVal = m.Groups[1].Index; 

Bạn cũng có thể đặt tên cho bạn nhóm (ở đây tôi cũng đã bỏ qua việc biên soạn regexp)

int indexVal = 0; 
Match m2 = Regex.Match(s, @"Index: (?<myIndex>\d*)"); 

if (m2.Success) 
    indexVal = m2.Groups["myIndex"].Index; 
0
int indexVal = 0; 
Regex re = new Regex.Match(s, @"(<?=Index:)(\d*)"); 

if(re.Success) 
{ 
    indexVal = Convert.ToInt32(re.Value); 
} 
Các vấn đề liên quan