簡體   English   中英

.NET正則表達式查找數字並將其分組

[英].NET regular expression find the number and group the number

我對.NET正則表達式有疑問。

現在我在列表中有幾個字符串,字符串中可能有一個數字,而字符串的其余部分相同,就像

string[] strings = {"var1", "var2", "var3", "array[0]", "array[1]", "array[2]"}

我想要結果是{"var$i" , "array[$i]"} ,並且我有一個數字記錄,該數字記錄了匹配的數字,例如字典

var$i {1,2,3} & 
array[$i] {0, 1 ,2}

我定義了這樣的正則表達式

var numberReg = new Regex(@".*(<number>\d+).*");
foreach(string str in strings){
  var matchResult = numberReg.Match(name);
  if(matchResult.success){
    var number = matchResult.Groups["number"].ToString();
    //blablabla

但是這里的正則表達式似乎不起作用(從不匹配成功),我是regex的新手,我想盡快解決此問題。

試試這個作為您的正則表達式:

(?<number>\d+)

我不清楚您到底想要什么。 但是,考慮一下您的代碼,我認為您必須以某種方式從值列表中提取數字(也許是變量名)。 嘗試這個:

// values
string[] myStrings = { "var1", "var2", "var3", "array[0]", "array[1]", "array[2]" };

// matches
Regex x = new Regex(@"(?<pre>\w*)(?<number>\d+)(?<post>\w*)");
MatchCollection matches = x.Matches(String.Join(",", myStrings));

// get the numbers
foreach (Match m in matches)
{
    string number = m.Groups["number"].Value;                
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM