【发布时间】:2018-09-12 13:53:42
【问题描述】:
目前我面临一个问题。我有一个字符串列表:
- Pferde>Bandagen und Gamaschen>Glocken und Fesselschutz,Marken>Waldhausen,Pferde>Bandagen und Gamaschen
- Pferde>Satellzubehör>Zubehör,Marken>Waldhausen,Pferde>Satelzubehör
- Pferde>Sättel,Marken>Wintec
- Marken>Wintec
- Reiter>Reithelme und Sicherheit>Reflexartikel,Pferde>Bandagen und Gamaschen>Glocken und Fesselschutz,Marken>Waldhausen,Reiter>Reithelme und Sicherheit,Pferde>Bandagen und Gamaschen
- Pferde>Trensen und Zubehör
我只想要"Marken>" 之后的值。但是,有些行没有"Marken>",并且位置并不总是相同。
编辑:这是我的代码
// Hersteller Fix
string hersteller = "";
string input = tokens[22];
string pattern = @"((.*Marken\>)|(.*?))(?'target'.+)";
RegexOptions options = RegexOptions.Singleline;
foreach (Match m in Regex.Matches(input, pattern, options))
{
hersteller = m.Index;
hersteller = m.Groups["target"];
}
这是输出:
{Waldhausen,Pferde>Sattelzubehör}
但我只需要“Waldhausen”、“Wintec”...
你有什么想法吗?
【问题讨论】:
-
我之前的代码:string[] hname = tokens[22].Split(',');字符串 hersteller = ""; if (hname.Length == 1) { string[] el = tokens[22].Split('>');赫斯特勒 = el[1]; } if (hname.Length == 2) { int index = hname.Length; hersteller = hname[索引-1];字符串[] el = hersteller.Split('>');赫斯特勒 = el[1]; } else if (hname.Length > 2) { int index = hname.Length; hersteller = hname[index -2];字符串[] el = hersteller.Split('>');赫斯特勒 = el[1]; }
-
发帖前阅读this
-
获取调试器,在开头放置一个断点并单步执行您的代码。检查你的变量,看看你的程序处于什么状态,并将它与它当时应该处于的状态进行比较。
-
你想在第一个“Marken>”之后获得价值吗?
-
@Uttam Gupta - 是的,只有第一个值