C# 用正则表达式求字符数组
发布网友
发布时间:2023-02-07 17:04
我来回答
共2个回答
热心网友
时间:2024-01-30 00:18
花了点时间帮你写了以下这个方法,已调试通过,返回一个ArrayList
public static System.Collections.ArrayList GetAry(string input)
{
System.Text.RegularExpressions.Regex r;
System.Text.RegularExpressions.Match m;
System.Collections.ArrayList ar = new System.Collections.ArrayList();
r = new System.Text.RegularExpressions.Regex(@"\{([ \S\t]*?)}",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
for (m = r.Match(input); m.Success; m = m.NextMatch())
{
ar.Add(m.Groups[1].ToString());
}
return ar;
}
如果你希望用string[],请自行更改即可。
string strParent = "asdf{aaa}asdfasdf{bbb}itwelewit{ccc}falks";
System.Collections.ArrayList ar = StGetAry(strParent);
ar即为所得。
热心网友
时间:2024-01-30 00:19
楼上的太麻烦,
楼主,我给你写了一个函数:
private string[] StrToArray(string s)
{
MatchCollection mc = Regex.Matches(s, "{.*?}");
string[] res = new string[mc.Count];
for (int i = 0; i < mc.Count; i++)
{
res[i] = mc[i].Value.Substring(1, mc[i].Value.Length - 2);
}
return res;
}
调用的时候这样调用:
string a = "asdf{aaa}asdfasdf{bbb}itwelewit{ccc}falks";
string[] b = StrToArray(a);
其中,b就是你要的那个东东:b={"aaa","bbb","ccc"} ;
记得引用这个:
using System.Text.RegularExpressions;