积极答复者
正则表达式不太好,求指教!

问题
-
我有2个字符串需要用正则表达式来取出:
string a = "#(BBC.apple) #(BBC.eat_food) #(BBC.cat)#(BBC.dog)" //apple和eat_food中间有空格,cat和dog中没有 string b = "aaaabbbbcccc abc ab ccc#(BBC.LOL) aaa vvv #(BBC.O)" //LOL前面是没有空格的直接连接ccc,O前面有空格
假设#(BBC.apple) = apple#(BBC.eat_food) = eat_food#(BBC.cat) = cat#(BBC.dog) = dog#(BBC.LOL) = LOL#(BBC.O) = O请教怎么样吧#(BBC.###)这种格式都取出来,然后换成已知的名字(apple,eat_food ...)以后再把他们换回去,有空格的地方和没有空格的地方都没有变。
答案
-
private void button1_Click(object sender, EventArgs e) { string a = "#(BBC.apple) #(BBC.eat_food) #(BBC.cat)#(BBC. dog)"; string parren = @"#\(BBC.(\w|\s)*\)"; MatchCollection mc= Regex.Matches(a, parren, RegexOptions.IgnoreCase); for (int i = 0; i < mc.Count; i++) { MessageBox.Show(mc[i].Value); } MessageBox.Show(mc.Count.ToString()); }
http://blog.csdn.net/zx13525079024- 已建议为答案 Lie YouModerator 2011年8月1日 8:39
- 已标记为答案 Lie YouModerator 2011年8月3日 5:32
-
void Main() { string a = "#(BBC.apple) #(BBC.eat_food) #(BBC.cat)#(BBC. dog)"; string b = "aaaabbbbcccc abc ab ccc#(BBC.LOL) aaa vvv #(BBC.O)"; Regex reg=new Regex( @"#\(BBC\.([^)]+)\)"); foreach(Match m in reg.Matches(a+b)) { Console.WriteLine(m.Value); } a=reg.Replace(a,"$1"); b=reg.Replace(b,"$1"); Console.WriteLine(a); Console.WriteLine(b); /* #(BBC.apple) #(BBC.eat_food) #(BBC.cat) #(BBC. dog) #(BBC.LOL) #(BBC.O) apple eat_food cat dog aaaabbbbcccc abc ab cccLOL aaa vvv O */ }
Best Regards,
If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".- 已建议为答案 Lie YouModerator 2011年8月1日 8:39
- 已标记为答案 Lie YouModerator 2011年8月3日 5:32
全部回复
-
private void button1_Click(object sender, EventArgs e) { string a = "#(BBC.apple) #(BBC.eat_food) #(BBC.cat)#(BBC. dog)"; string parren = @"#\(BBC.(\w|\s)*\)"; MatchCollection mc= Regex.Matches(a, parren, RegexOptions.IgnoreCase); for (int i = 0; i < mc.Count; i++) { MessageBox.Show(mc[i].Value); } MessageBox.Show(mc.Count.ToString()); }
http://blog.csdn.net/zx13525079024- 已建议为答案 Lie YouModerator 2011年8月1日 8:39
- 已标记为答案 Lie YouModerator 2011年8月3日 5:32
-
void Main() { string a = "#(BBC.apple) #(BBC.eat_food) #(BBC.cat)#(BBC. dog)"; string b = "aaaabbbbcccc abc ab ccc#(BBC.LOL) aaa vvv #(BBC.O)"; Regex reg=new Regex( @"#\(BBC\.([^)]+)\)"); foreach(Match m in reg.Matches(a+b)) { Console.WriteLine(m.Value); } a=reg.Replace(a,"$1"); b=reg.Replace(b,"$1"); Console.WriteLine(a); Console.WriteLine(b); /* #(BBC.apple) #(BBC.eat_food) #(BBC.cat) #(BBC. dog) #(BBC.LOL) #(BBC.O) apple eat_food cat dog aaaabbbbcccc abc ab cccLOL aaa vvv O */ }
Best Regards,
If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".- 已建议为答案 Lie YouModerator 2011年8月1日 8:39
- 已标记为答案 Lie YouModerator 2011年8月3日 5:32