如果我有各种字符串,其中有文本后跟空格后跟文本,我如何解析从第二个文本块中的第一个字符开始的子字符串?
例如:
如果我有字符串:
“stringA stringB”
如何提取子字符串
“stringB”
字符串的长度各不相同,但都是格式的。
我确信这可以通过正则表达式轻松完成,但我无法找到适合c#的语法。
答案 0 :(得分:2)
不需要RegEx,只需拆分它。
var test = "stringA stringB";
var second = test.Split()[1];
如果你在美妙的LINQ-land
var second = "string1 string2".Split().ElementAtOrDefault(1);
并使用RegEx(完整性)
var str2 = Regex.Match("str1 str2", @"\w (.*$)").Groups[1].Value;
答案 1 :(得分:1)
var test = "stringA stringB";
var elements = test.Split(new[]
{
' '
});
var desiredItem = elements.ElementAtOrDefault(1);
如果你想捕获所有空格(msdn tells us more):
var test = "stringA stringB";
//var elements = test.Split(); // pseudo overload
var elements = test.Split(null); // correct overload
var desiredItem = elements.ElementAtOrDefault(1);
修改强>
为什么伪过载?
.Split()
汇编为.Split(new char[0])
答案 2 :(得分:0)
如果所有字符串都由空格分隔,则此处不需要正则表达式。你可以使用Split()方法:
string[] result = { };
string myStrings = "stringA stringB stringC";
result = myStrings.Split(' ');
答案 3 :(得分:-1)
您不需要事件Split()。我认为一个简单的IndexOf / Substring就可以完成这项工作。
var input = "A B";
var result = string.Empty;
var index = input.IndexOf(' ');
if (index >= 0)
{
result = input.Substring(index + 1);
}