#@DD=用户[6]
@E1=医疗[3][SIREN.WAV]
@E2=抢劫[2]
@E3=火警[1]
#@E4=键盘事件[1] 我要的字段
1:# 符号可有可无
2:@ 符号可有可无
3:那个16进制的数 如"DD",是两位的
4:文字
5:[ ]中的数字 1-9,可有可无
6:[ ]中的文件名 一个文件名,可有可无
@E1=医疗[3][SIREN.WAV]
@E2=抢劫[2]
@E3=火警[1]
#@E4=键盘事件[1] 我要的字段
1:# 符号可有可无
2:@ 符号可有可无
3:那个16进制的数 如"DD",是两位的
4:文字
5:[ ]中的数字 1-9,可有可无
6:[ ]中的文件名 一个文件名,可有可无
我用match.Groups[0].Value要得到1,2,3,4,5,6
怎么写得啊?
有个什么子匹配?
string regex_str = @"#?@?" + casecode + @"=[\u4e00-\u9fa5]+(?:\[[1-9]\])?(?:\[[^\]]*\])?";
Regex expression = new Regex(regex_str, RegexOptions.None);
Match match = expression.Match(eventstr);
是这样写得匹配吗?
只有match.Groups[0].Value有值
我想要match.Groups[1].Value的值为#,match.Groups[2].Value的值为*怎么写的啊?我对正则表达式 一点也搞不清除
MatchCollection mc = Regex.Matches(yourStr, @"(#)?(@)?([0-9a-fA-F]{2})=([\u4e00-\u9fa5]+)(\[[1-9]\])?(\[[^\]]*\])?");
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[1].Value + "\n";
richTextBox2.Text += m.Groups[2].Value + "\n";
richTextBox2.Text += m.Groups[3].Value + "\n";
richTextBox2.Text += m.Groups[4].Value + "\n";
richTextBox2.Text += m.Groups[5].Value + "\n";
richTextBox2.Text += m.Groups[6].Value + "\n";
}
http://www.cnblogs.com/lxcnn/archive/2007/06/10/777975.aspx
string yourStr = .............;
MatchCollection mc = Regex.Matches(yourStr, @"(#)?(@)?([0-9a-fA-F]{2})=([\u4e00-\u9fa5]+)(\[[1-9]\])?(\[[^\]]*\])?");只是其中的([0-9a-fA-F]{2})这两位也是我已知的参数codestr,我想这样去匹配:Regex.Matches(yourStr, @"(#)?(@)?(" + codestr+ @")=([\u4e00-\u9fa5]+)(\[[1-9]\])?(\[[^\]]*\])?");
可是有一些值匹配不到,如D1,D2 好象以D开始的都不行,怎么办?
我这样用了:)