首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

正则表达式,分组提取,多谢

2012-11-14 
正则表达式,分组提取,谢谢public const string Dat_Example 8501151012172100711111 20000711111118999

正则表达式,分组提取,谢谢
public const string Dat_Example = "8501151012172100711111 2000071111111 899999999 05I41714 2100100 LBD9 0000 G 490200000000000000H0363700000898600910909F8180750 5956 899900000033330010160008000000000000000000000000000101 415915101216390725000AnHG<2VS 0031 415915101216390725100AnHG<2VS 0031 415915101216390725200 0031 415915101216390725300AnHG<2VS 0031 0799EOF ";

---------------------------
 
   
 415915101216390725000AnHG<2VS 0031 【我需要的】
 415915101216390725100AnHG<2VS 0031【我需要的】
 415915101216390725200 0031【我需要的】
 415915101216390725300AnHG<2VS 0031 【我需要的】
   
--------------
按照 4159来分组提取Dat_Example常量里面的字符串,(4前面有个空格)

正则表达式方面比较生疏,谢谢各位老师





[解决办法]
try...

C# code
Regex reg = new Regex(@"\b4159\S+\s+\S+");MatchCollection mc = reg.Matches(Dat_Example);foreach (Match m in mc){    richTextBox2.Text += m.Value + "\n";}/*-----输出-----415915101216390725000AnHG<2VS 0031415915101216390725100AnHG<2VS 0031415915101216390725200 0031415915101216390725300AnHG<2VS 0031*/
[解决办法]
探讨
try...


C# code
Regex reg = new Regex(@"\b4159\S+\s+\S+");
MatchCollection mc = reg.Matches(Dat_Example);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n";
}
/*-----输出-----……

[解决办法]
C# code
string Dat_Example = "8501151012172100711111 2000071111111 899999999 05I41714 2100100 LBD9 0000 G 490200000000000000H0363700000898600910909F8180750 5956 899900000033330010160008000000000000000000000000000101 415915101216390725000AnHG<2VS 0031 415915101216390725100AnHG<2VS 0031 415915101216390725200 0031 415915101216390725300AnHG<2VS 0031 0799EOF ";List<string> list=new List<string>();foreach (Match m in Regex.Matches(Dat_Example,@"\b4159[^\s]+\s+[^\s]+\b")){    list.Add(m.Value);}list.Foreach(x=>Console.WriteLine(x));/*415915101216390725000AnHG<2VS 0031415915101216390725100AnHG<2VS 0031415915101216390725200 0031415915101216390725300AnHG<2VS 0031*/
[解决办法]
(?i)\b[A-Z\d]{2}59[^\s]+\s+[^\s]+\b
[解决办法]
string pattern=@"\b[a-zA-Z0-9]{2}59[^\s]+\s+[^\s]+\b";

这样即可

热点排行