如何用正则表达式提取一行中“ABCD”四个字母或组合,其他字符忽略 本帖最后由 u010580181 于 2013-06-04 12:19:25 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string s = "ABCD"; s = string.Join("", s.Select(a => Math.Pow(2,((int)a - 65)))); //1248 Math.Pow(2,((int)a - 65))这个方法对应成数字很棒,应该是第二部的操作。最关键的第一步操作,怎么能把一行中的带有A、B、C、D的字符摘取出来,比如下面两行:1、【答案】:A30、【答案】:BCD我只要获取上面一行的:A,下面一行:BCD,其他字符不要。是从RichTextBox的行中获取 var lines = this.richTextBox1.Lines.Select(a => { string _pattern = @"(?i)(\d+)[、]\s*?【\w+?】\s*?[::]\s*?([a-z]+)(?=\s|$)"; Match m = Regex.Match(a, _pattern); return new { No = m.Groups[1].Value, Answer = m.Groups[2].Value }; }); /* * + [0] { No = "1", Answer = "A" } <Anonymous Type> + [1] { No = "2", Answer = "AD" } <Anonymous Type> + [2] { No = "30", Answer = "BCD" } <Anonymous Type> */ 很大帮助,谢谢!不过还差一点点,可能刚才没说明白,答案的一行除了A、B、C、D选项之外其它字符不固定,题号可以不要,所以除了ABCD四个字母外其他字符全部摘除,正则表达式应该怎么写ABC1、AD2,A3.答案:ACBC正确 var lines = this.richTextBox1.Lines.Select(a => { string _pattern = @"(?i)[a-d]+"; Match m = Regex.Match(a, _pattern); return m.Value; }); /* [0] "A" string [1] "AD" string [2] "BCD" string */ 求助 。 关于ComboBox 高手来,动态实例化问题!!!!!!!!!!!!!!! FtpWebRequest上传的问题 如能解决另一贴同样给分 错误:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。 请教关于多线程的问题 导出数据到excel时出现无权查看网页,大家帮忙! 新手头一次提问,请教一个工具栏的问题,帮帮忙,谢谢了! 请问在Console程序中,如何处理键盘事件?还有如何退出console程序? C#中的字符串的问题 如何实现帮助中的这个功能? WPF窗体一直居上问题 条形码 打印
//1248
最关键的第一步操作,怎么能把一行中的带有A、B、C、D的字符摘取出来,比如下面两行:
1、【答案】:A
30、【答案】:BCD
我只要获取上面一行的:A,下面一行:BCD,其他字符不要。是从RichTextBox的行中获取
string _pattern = @"(?i)(\d+)[、]\s*?【\w+?】\s*?[::]\s*?([a-z]+)(?=\s|$)";
Match m = Regex.Match(a, _pattern);
return new { No = m.Groups[1].Value, Answer = m.Groups[2].Value };
});
/*
* + [0] { No = "1", Answer = "A" } <Anonymous Type>
+ [1] { No = "2", Answer = "AD" } <Anonymous Type>
+ [2] { No = "30", Answer = "BCD" } <Anonymous Type> */
ABC
1、AD
2,A
3.答案:AC
BC正确
{
string _pattern = @"(?i)[a-d]+";
Match m = Regex.Match(a, _pattern);
return m.Value;
});
/*
[0] "A" string
[1] "AD" string
[2] "BCD" string
*/