首先谢谢mbh0210(独孤求败),给的方法,如下:
public List<string> GetData(string strParameter,string str)
{
List<string> datalist = new List<string>();
string strReg = string.Format("(?is)(?<=,){0}[^,]*,",strParameter);
Regex re = new Regex(strReg);
foreach (Match mc in re.Matches(str))
{
datalist.Add(mc.Value);
} return datalist ;
}下面有一个字符串:
“010101,00000000,00100000,”
可以取到“00”开头的“00000000,”和“00100000,”,但是取不到“01”开头的“010101,”,太遗憾了小弟不明白啊,为什么会这样,不懂正则,那位大侠能帮忙完善下吗?
public List<string> GetData(string strParameter,string str)
{
List<string> datalist = new List<string>();
string strReg = string.Format("(?is)(?<=,){0}[^,]*,",strParameter);
Regex re = new Regex(strReg);
foreach (Match mc in re.Matches(str))
{
datalist.Add(mc.Value);
} return datalist ;
}下面有一个字符串:
“010101,00000000,00100000,”
可以取到“00”开头的“00000000,”和“00100000,”,但是取不到“01”开头的“010101,”,太遗憾了小弟不明白啊,为什么会这样,不懂正则,那位大侠能帮忙完善下吗?
解决方案 »
- 关于网站开发dll的引用
- 探讨 Csharp 垃圾回收 与 手动清理效率?
- if转换为select...case,着急!~~~
- 在datagrid里添加了模板列,模板列里是个imagebutton,如何点击这个imagebutton删除该行的数据?
- 【Ajax实现无刷新三联动下拉框】
- 上传文件问题FileUpload控件
- CheckListBox 显示问题
- 救命啊!!!我用C# TcpClient类写了一个邮件发送组件,在windowsform中测试通过,在web中发不出啊!
- 请问高手,象asp或jsp组织SQL语句的办法在asp.net中是否允许?
- 关于pageload,IsPostBack的困惑
- 错误提示“此请求的查询字符串的长度超过配置的 maxQueryStringLength 值。”如何解决
- order by 的问题
Regex re = new Regex(@"[\d]{0,}");
MatchCollection olletion = re.Matches("010101,00000000,00100000,hello,world");
我写了个,变量名字不就不讲究了:
protected void Page_Load(object sender, EventArgs e)
{
string s = "010101,00000000,00100000,01100101";
string[] result = abc(s, "00");
for (int i = 0; i < result.Length; i++)
Response.Write(result[i] + "<br/>"); }
public string[] abc(string srcStr, string qiandao)
{
string[] ss = srcStr.Split(',');
List<string> r = new List<string>();
for (int i = 0; i < ss.Length; i++)
{
if (ss[i].IndexOf(qiandao) == 0)
r.Add(ss[i] + ",");
}
return r.ToArray();
}
//如果你要换成01 只要把i=1,已测试
int i = 0;
string str = "000001,010001,011111,022114,001111,000111,020001,030000,010000";
Regex reg = new Regex(@"(?<=^|,)0" + i + "[^,]*");
foreach (Match m in reg.Matches(str))
{
Response.Write(m.Value + "<br/>");
}
/*
输出
000001
001111
000111
*/
string str = "000001,010001,011111,022114,001111,000111,020001,030000,010000";
Regex reg = new Regex(@"(?<=^|,)0" + i + "[^,]*");
foreach (Match m in reg.Matches(str))
{
Response.Write(m.Value + "<br/>");
}
/*
010001
011111
010000
*/
string strReg = string.Format("(?is)(?<=,){0}[^,]*,",strParameter);
//上面这句话 匹配,后面且以0开头的字符串//因为010101,不是在“,”后面 所以匹配不到 可替换如下:
string strReg = string.Format("(?is)(?<=^|,){0}[^,]*,",strParameter);
{
return Regex.Replace(str, @"(^|(?<s>,))" + strParameter + "[^,]*(?(s)|,?)", "");
}
public List<string> GetData(string strParameter, string str)
{
List<string> datalist = new List<string>();
string strReg = string.Format(@"(?<=^|,){0}[^,]*", strParameter);
Regex re = new Regex(strReg);
foreach (Match mc in re.Matches(str))
{
datalist.Add(mc.Value);
}
return datalist;
}
//调用
string str = "000001,010001,011111,022114,001111,000111,020001,030000,010000";
foreach (string s in GetData("01", str))
{
Response.Write(s + "<br/>");
}
Response.Write("<br/><br/>");
Response.Write(ReplaceData("01", str));
/*
输出
010001
011111
010000
000001,022114,001111,000111,020001,030000
*/
{
List<string> datalist = new List<string>();
str = "," + str;
string strReg = string.Format("(?is)(?<=,){0}[^,]*,", strParameter);
Regex re = new Regex(strReg);
foreach (Match mc in re.Matches(str))
{
datalist.Add(mc.Value);
} return datalist;
}