我有一个包含类似内容的字符串"' asd asd / * ... asd' ASD ..." 我只想检索从'开始的值。并结束相同的字符'。因此,从该字符串开始,值将为" asd asd / * ... asd"
我尝试使用下面的代码,但它不起作用。
string HDtext = new string(TextChar.SkipWhile(c => !Char.IsSymbol(c))
.TakeWhile(c => Char.IsLetter(c) ||
c == '*' ||
c == '/' ||
c == ' ')
.ToArray());
有人知道如何正确地检索它吗?
答案 0 :(得分:3)
我会在这里使用Regex
string input = "'asd asd asd / * ... asd ' asd...";
var output = Regex.Match(input, @"'(.+?)'").Groups[1].Value;
答案 1 :(得分:1)
String.Split
将是一个选项
string input = "'asd asd asd / * ... asd ' asd...";
string result = input.Split('\'')[1];
答案 2 :(得分:0)
您可以获取所需char的第一个和最后一个匹配项的索引,然后只需获取它们之间的子字符串。像这样,例如:
var __text = "'asd asd asd / * ... asd' asd...";
var __startIndex = __text.IndexOf("'") + 1;
var __length = __text.LastIndexOf("'") - __startIndex;
var __subString = __text.Substring(__startIndex, __length);
答案 3 :(得分:0)
如果你想使用LINQ:
string result = new string(str.SkipWhile(c => c != '\'')
.Skip(1)
.TakeWhile(c => c != '\'').ToArray());
如果有超过2个'
字符,并且您希望获得第一个和最后一个之间的所有内容:
string result = new string(str.SkipWhile(c => c != '\'').Skip(1)
.Reverse()
.SkipWhile(c => c != '\'').Skip(1)
.Reverse()
.ToArray());