C#正则表达式问题

C#正则表达式问题,c#,regex,C#,Regex,我有以下字符串: http://www.powerwXXe.com/text1 123-456 text2 text3/ 有人能给我一些建议,告诉我如何获取text1、text2和text3的值,并将它们转换成字符串。我听说过正则表达式,但不知道如何使用它们 这里有一个关于C#中正则表达式入门的链接: 我不认为在这里写教程是合适的,因为信息是在线的,所以请查看链接,如果您有具体问题,请告诉我。这里是一个关于C#中正则表达式入门的链接: 我不认为在这里写教程是合适的,因为信息是在线的,所以请查看

我有以下字符串:

http://www.powerwXXe.com/text1 123-456 text2 text3/

有人能给我一些建议,告诉我如何获取text1、text2和text3的值,并将它们转换成字符串。我听说过正则表达式,但不知道如何使用它们

这里有一个关于C#中正则表达式入门的链接:


我不认为在这里写教程是合适的,因为信息是在线的,所以请查看链接,如果您有具体问题,请告诉我。

这里是一个关于C#中正则表达式入门的链接:


我不认为在这里写教程是合适的,因为信息是在线的,所以请查看链接并让我知道您是否有具体问题。

如果您知道字符串的格式总是类似的,您可以使用
string.Split
,首先在
/
上,然后在空格
上,从结果字符串数组中检索结果

string[] slashes = myString.Split('/');
string[] textVals = slashes[3].Split(' ');
// at this point:
//   textVals[0] = "text1"
//   textVals[1] = "123-456"
//   textVals[2] = "text2"
//   textVals[3] = "text3"

如果您知道字符串的格式总是相似的,则可以使用
string.Split
,首先在
/
上,然后在空格
上,使用
,从生成的字符串数组中检索结果,而不是使用正则表达式

string[] slashes = myString.Split('/');
string[] textVals = slashes[3].Split(' ');
// at this point:
//   textVals[0] = "text1"
//   textVals[1] = "123-456"
//   textVals[2] = "text2"
//   textVals[3] = "text3"

您可以使用
string.Fromat(“http://myurl.com/{0}{1}{2},value1,textbox2.Text,textbox3.Text)
并以任何方式格式化url。如果您想使用正则表达式,您可以随时检查。

您可以使用
string.Fromat(“http://myurl.com/{0}{1}{2},value1,textbox2.Text,textbox3.Text)
并以任何方式格式化url。如果您想使用正则表达式,您可以随时检查。

正则表达式的使用依赖于您在字符串中看到的模式-在使用正则表达式之前,您需要能够概括您要查找的字符串模式

对于这个范围的问题,如果您可以确定模式,那么最好使用其他字符串解析方法,例如和


正则表达式是一个功能强大的工具,当然值得学习,但在这里可能没有必要。

正则表达式的使用依赖于您在字符串中看到的模式-在使用正则表达式之前,您需要能够概括您正在寻找的字符串模式

对于这个范围的问题,如果您可以确定模式,那么最好使用其他字符串解析方法,例如和


正则表达式是一个功能强大的工具,当然值得学习,但这里可能不需要它。

根据您给出的示例,text1、text2和text3似乎是用空格分隔的?如果是这样,并且您总是知道正则表达式的位置,那么您可能希望跳过正则表达式,只使用.Split(“”)将字符串拆分为字符串数组,然后从中获取相关项。大概是这样的:

string foo = "http://www.powerwXXe.com/text1 123-456 text2 text3/"
string[] fooParts = foo.Split(' ');
string text1 = fooParts[0].Replace("http://www.powerwXXe.com/", "");
string text2 = fooParts[2];
string text3 = fooParts[3].Replace("/", "");

在尝试从字符串[]中获取任何内容之前,您可能希望对该字符串[]执行边界检查,但这是可行的。正则表达式对于字符串解析来说是很棒的,但是当你需要做一些简单的事情时,有时候当字符串类中的简单方法可以做的时候,它就显得有些过分了。

根据你给出的示例,看起来text1、text2和text3是用空格分隔的?如果是这样,并且您总是知道正则表达式的位置,那么您可能希望跳过正则表达式,只使用.Split(“”)将字符串拆分为字符串数组,然后从中获取相关项。大概是这样的:

string foo = "http://www.powerwXXe.com/text1 123-456 text2 text3/"
string[] fooParts = foo.Split(' ');
string text1 = fooParts[0].Replace("http://www.powerwXXe.com/", "");
string text2 = fooParts[2];
string text3 = fooParts[3].Replace("/", "");

在尝试从字符串[]中获取任何内容之前,您可能希望对该字符串[]执行边界检查,但这是可行的。正则表达式对于字符串解析来说是很棒的,但是当你需要做一些简单的事情时,有时候当string类中的简单方法可以做的时候,它就显得有些过分了。

这一切都取决于你对正在解析的字符串的了解程度。字符串是从哪里来的?您对它的形成了解多少

基于您的示例字符串,您可以通过以下简单的操作逃脱

string pattern = @"http://www.powerwXXe.com/(?<myGroup1>\S+)\s\S+\s(?<myGroup2>\S+)\s(?<myGroup3>\S+)/";
        var reg = new System.Text.RegularExpressions.Regex(pattern);

        string input = "http://www.powerwXXe.com/text1 123-456 text2 text3/";
        System.Text.RegularExpressions.Match myMatch = reg.Match(input);
字符串模式=@”http://www.powerwXXe.com/(?\S+)\S\S+\S(?\S+)\S(?\S+)/”;
var reg=new System.Text.RegularExpressions.Regex(模式);
字符串输入=”http://www.powerwXXe.com/text1 123-456text2text3/“;
System.Text.RegularExpressions.Match myMatch=reg.Match(输入);
然后,caputed字符串将分别包含在myMatch.Groups[“myGroup1”]、[“myGroup2”]、[“myGroup3”]中

但是,这假设字符串总是以开头,总是要捕获三个组,并且这些组之间用空格分隔(这是url中的非法字符,在几乎所有情况下都会转换为%20,必须在模式中加以说明)


那么,你对你的绳子了解多少?而且,正如一些人已经指出的,您真的需要正则表达式吗?

这取决于您对正在解析的字符串了解多少。字符串是从哪里来的?您对它的形成了解多少

基于您的示例字符串,您可以通过以下简单的操作逃脱

string pattern = @"http://www.powerwXXe.com/(?<myGroup1>\S+)\s\S+\s(?<myGroup2>\S+)\s(?<myGroup3>\S+)/";
        var reg = new System.Text.RegularExpressions.Regex(pattern);

        string input = "http://www.powerwXXe.com/text1 123-456 text2 text3/";
        System.Text.RegularExpressions.Match myMatch = reg.Match(input);
字符串模式=@”http://www.powerwXXe.com/(?\S+)\S\S+\S(?\S+)\S(?\S+)/”;
var reg=new System.Text.RegularExpressions.Regex(模式);
字符串输入=”http://www.powerwXXe.com/text1 123-456text2text3/“;
System.Text.RegularExpressions.Match myMatch=reg.Match(输入);
然后,caputed字符串将分别包含在myMatch.Groups[“myGroup1”]、[“myGroup2”]、[“myGroup3”]中

但是,这假设字符串总是以开头,总是要捕获三个组,并且这些组之间用空格分隔(这是url中的非法字符,在几乎所有情况下都会转换为%20,必须在模式中加以说明)。