C# 如何将字符串拆分为多个字符?

C# 如何将字符串拆分为多个字符?,c#,.net,string,split,string-operations,C#,.net,String,Split,String Operations,我有这样一个字符串:string ip=“192.168.10.30 | SomeName”。 我想用|(包括空格)将其拆分。不幸的是,使用此代码不可能: string[] address = ip.Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries); 由于这导致了“192.168.10.30”。我知道我可以将.Trim()添加到地址[0],但这真的是正确的方法吗 只需将空格(“|”)添加到搜索模式中,我就可以 无法识别

我有这样一个字符串:
string ip=“192.168.10.30 | SomeName”
。 我想用
|
(包括空格)将其拆分。不幸的是,使用此代码不可能:

string[] address = ip.Split(new char[] {'|'}, StringSplitOptions.RemoveEmptyEntries);
由于这导致了
“192.168.10.30”
。我知道我可以将
.Trim()
添加到
地址[0]
,但这真的是正确的方法吗

只需将空格(
“|”
)添加到搜索模式中,我就可以

无法识别的转义序列


Split
方法接受字符数组,因此您也可以在该数组中指定第二个字符。由于使用了
removeMptyEntries
这些空格将从最终结果中删除

这样使用:

 string[] address = ip.Split(new char[] { '|',' '}, StringSplitOptions.RemoveEmptyEntries);
您将在数组中获得两个项目


“192.168.10.30”
SomeName

您可以按字符串拆分,而不是按字符拆分:

var result = ip.Split(new string[] {" | "}, StringSplitOptions.RemoveEmptyEntries);

这将为您提供所需的结果。它将在拆分之前重新显示所有空格

这可能会对您有所帮助

string[] address = ip.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToArray();

您可能想使用:您可以将正则表达式与此模式一起使用。
(?\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})*\\\\*(?\S*)
。例如,获取ip write
regex.Match(input).组[“ip”]
,并获取名称write name而不是ipThe
char[]{124',''}
方法更为稳健,因为它涵盖了缺少空格和空条目的情况(这可能与OP有关,也可能与OP无关,但值得了解)
string[] address = ip.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(s => s.Trim()).ToArray();