我无法弄清楚如何使用字符串中的特定匹配来提取特定数字。
示例:
string myString = "blah blah **[10]** blah **[20]** and some more blah **[30]**";
Regex myIDsReg = new Regex(@"\*\*\[(\d+)\]\*\*");
显然正则表达式是正确的。
Match myMatch = myIDsReg.Match(myString);
收益率“** [10] **”但没有别的。
我无法弄清楚如何获得具有以下值的数组:10,20,30
答案 0 :(得分:4)
答案 1 :(得分:1)
我会这样做
string myString = "blah blah **[10]** blah **[20]** and some more blah **[30]**";
Regex myIDsReg = new Regex(@"\*\*\[(\d+)\]\*\*");
string[] regexResult = (from Match match in myIDsReg.Matches(myString) select match.Groups[1].Value).ToArray();
您也可以选择所需的输出
List<string> regexResult = (from Match match in myIDsReg.Matches(myString) select match.Groups[1].Value).ToList();
或
IEnumerable<string> regexResult = (from Match match in myIDsReg.Matches(myString) select match.Groups[1].Value);
我更喜欢后者中的一个
答案 2 :(得分:1)
Trikks想出了最好的答案。我只需要修改一下就能最好地为我服务。
string myString = "blah blah **[10]** blah **[20]** and some more blah **[30]**";
Regex myIDsReg = new Regex(@"\*\*\[(\d+)\]\*\*");
string[] regexResult = (from Match match in myIDsReg.Matches(myString) select match.Groups[1].Value).ToArray();
我基本上用“select match.Groups [1] .Value”替换“select match.Value”。
感谢您的帮助!