-2

我想从这个字符串中获取100example

?connect:100/username:example/

我在谷歌搜索,但在我的解决方案中找不到一些有用的正则表达式模式

请帮忙

4

3 回答 3

1
try {
    Regex RegexObj = new Regex(":(?<Number>\\d+)/.+?:(?<Text>\\w+)/");
    Match MatchResults = RegexObj.Match(SubjectString);
    while (MatchResults.Success) {
        for (int i = 1; i < MatchResults.Groups.Count; i++) {
            Group GroupObj = MatchResults.Groups[i];
            if (GroupObj.Success) {

            } 
        }
        MatchResults = MatchResults.NextMatch();
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}
于 2012-07-04T12:42:10.380 回答
0

这是正则表达式:

\?connect:([0-9]+)/username:([^/]*)/
于 2012-07-04T12:44:26.150 回答
0

您不需要为此使用正则表达式,使用 Linq:

var url = "?connect:100/username:example/";
var data = url.Substring(1, url.Length-2).Split('/')
                                         .Select(x => x.Split(':'))
                                         .ToDictionary(x => x[0], x => x[1]);

Console.WriteLine(data["connect"]); // 100
Console.WriteLine(data["username"]); // example

SubString(1, url.Length-2)如果您在没有开始?和结尾的情况下取回字符串,则可以删除呼叫/

于 2012-07-04T12:58:46.893 回答