大家好,我想学习编程,可是没有基础。虽然买了几本C#入门的教材,可是大多数内容我看不懂。所以想来论坛中向大家学习。 我不明白怎么才能让程序识别我输入的内容呢? 比如在一个文本框中输入一串字符:***abc=123ghi=89def=4567***
等号后面的数字位数和内容是不固定的,星号内容不用理它是什么。处理以后把我要的内容装在另外的文本框内。
abc=
def=
ghi= 我在书里找不到相关的内容学习,在网上找文章也看不懂,我还没入门呢。 我用自己有限的知识思考过,好像在文本内用正则表达式查找符合要求的部分,然后把等号后面的数字填到文本框里。但是我什么都不懂啊,不知道从哪里做起,所以来问问大家。哪位大哥有空指导一下。或者告诉我要看哪方面的文章去学习。 先谢谢各位了^_^
等号后面的数字位数和内容是不固定的,星号内容不用理它是什么。处理以后把我要的内容装在另外的文本框内。
abc=
def=
ghi= 我在书里找不到相关的内容学习,在网上找文章也看不懂,我还没入门呢。 我用自己有限的知识思考过,好像在文本内用正则表达式查找符合要求的部分,然后把等号后面的数字填到文本框里。但是我什么都不懂啊,不知道从哪里做起,所以来问问大家。哪位大哥有空指导一下。或者告诉我要看哪方面的文章去学习。 先谢谢各位了^_^
.NET Framework 正则表达式正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法使您可以快速分析大量文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串(例如 HTML 处理、日志文件分析和 HTTP 标头分析)的许多应用程序而言,正则表达式是不可缺少的工具。Microsoft .NET Framework 正则表达式并入了其他正则表达式实现的最常见功能,例如在 Perl 和 awk 中提供的那些功能。被设计为与 Perl 5 正则表达式兼容,.NET Framework 正则表达式还包括一些在其他实现中尚未提供的功能,例如从右到左匹配和即时编译。.NET Framework 正则表达式类是基类库的一部分,它们可以和面向公共语言运行库的任何语言或工具(包括 ASP.NET 和 Visual Studio 2005)一起使用。
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string input = "***abc=123ghi=89def=4567***";
string pattern = @"abc=(\d+)ghi=(\d+)def=(\d+)";
Regex r = new Regex(pattern);
Match m = r.Match(input);
Console.WriteLine(m.Groups[1]);
Console.WriteLine(m.Groups[2]);
Console.WriteLine(m.Groups[3]);
}
Program(){}
}
/* 程序输出:
123
89
4567
*/
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string input = "***abc=123ghi=89def=4567***";
string pattern = @"(abc=\d+)(ghi=\d+)(def=\d+)";
Match m = Regex.Match(input, pattern);
Console.WriteLine(m.Groups[1]);
Console.WriteLine(m.Groups[2]);
Console.WriteLine(m.Groups[3]);
}
}
/* 程序输出:
abc=123
ghi=89
def=4567
*/
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string input = "***abc=123ghi=89def=4567***";
string pattern = @"\w+=\d+";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine(m.Value);
}
}
}
/* 程序输出:
abc=123
ghi=89
def=4567
*/
复杂一点的当然是选择正则表达式进行处理,C#里有Regex类
简单点的就用StringBuffer比比吧
using System.Text.RegularExpressions;class Program
{
static void Main()
{
string input = "***abc=123!!ghi=89def=4567***";
string pattern = @"(\w+)=(\d+)";
foreach (Match m in Regex.Matches(input, pattern))
{
Console.WriteLine("整个匹配内容:{0},\t第1捕获组:{1},\t第2捕获组:{2}", m.Value, m.Groups[1].Value, m.Groups[2].Value);
}
}
}
/* 程序输出:
整个匹配内容:abc=123, 第1捕获组:abc, 第2捕获组:123
整个匹配内容:ghi=89, 第1捕获组:ghi, 第2捕获组:89
整个匹配内容:def=4567, 第1捕获组:def, 第2捕获组:4567
*/