我想检索由特定分隔符分隔的字符。从由分隔符分隔的字符串中检索特定字符
例子:
在这里,我想访问“”分隔符之间的字符串。但我想要“”之间的第二组字符。
abc"def"ghi"jklm // Output : ghi
"hello" yes "world" // output : world
我该怎么做到这一点? 我知道我们可以使用拆分。但有时字符串可能不“字开始。
任何人都可以请帮我这个?
我想检索由特定分隔符分隔的字符。从由分隔符分隔的字符串中检索特定字符
例子:
在这里,我想访问“”分隔符之间的字符串。但我想要“”之间的第二组字符。
abc"def"ghi"jklm // Output : ghi
"hello" yes "world" // output : world
我该怎么做到这一点? 我知道我们可以使用拆分。但有时字符串可能不“字开始。
任何人都可以请帮我这个?
string valueStr = "abc\"def\"ghi\"jklm";
var result = valueStr.Split('"')[2];
Console.WriteLine(result);
https://dotnetfiddle.net/T3fMof
显然访问它们
这通过第一个例子,但第二个失败。 –
纠正我,如果我错了,但在第二个输出,这将返回'是',而不是OP所说的是'世界'。 –
现在你的小提琴是正确的,但不是要求的输出。 –
您可以在退房前的数组元素只需找到第一个报价,并从那里使用你的方法:
var firstQuote = str.IndexOf('"');
var startsWithQuote = str.Substring(firstQuote);
有什么办法? OP没有办法。 –
OP描述了他的问题,因为有时候没有“作为字符串中的第一个字符,因此使用string.Split()会为他做不同的事情,因此我给他提供了一种在” – lsedlacek
你可以用正则表达式来匹配它们:
var test = "abc\"def\"ghi\"jklm";
var test2 = "\"hello\" yes \"world\"";
var match1 = Regex.Matches(test, ".+\"(.+)\"");
var match2 = Regex.Matches(test2, ".+\"(.+)\"");
Console.WriteLine("Match1: " + match1[0].Groups[1].Captures[0]);
Console.WriteLine("Match2: " + match2[0].Groups[1].Captures[0]);
// Match1: ghi
// Match2: world
看起来没有模式。如果ghi为1st,那么它就是b/w第二和第三个引号。如果世界第二,它是黑白3和4的报价。似乎并不清楚“第二套字符”的含义。 –
如果只有一个引号是分隔符,第二个输出应该是“是”,根据'但我想第二组字符' –
即使在第一行中,第二个值是'def',而不是'ghi'。如果你想要*第三组字符 –