我想从这个字符串中获取100
和example
?connect:100/username:example/
我在谷歌搜索,但在我的解决方案中找不到一些有用的正则表达式模式
请帮忙
我想从这个字符串中获取100
和example
?connect:100/username:example/
我在谷歌搜索,但在我的解决方案中找不到一些有用的正则表达式模式
请帮忙
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
}
这是正则表达式:
\?connect:([0-9]+)/username:([^/]*)/
您不需要为此使用正则表达式,使用 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)
如果您在没有开始?
和结尾的情况下取回字符串,则可以删除呼叫/
。