Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅删除管道前后的空间_C#_.net_Regex_Replace_Whitespace - Fatal编程技术网

C# 仅删除管道前后的空间

C# 仅删除管道前后的空间,c#,.net,regex,replace,whitespace,C#,.net,Regex,Replace,Whitespace,我有以下字符串,它与管道“|”分开 我需要删除管道前后的空格。我编写了以下正则表达式,它运行良好,并删除了逗号Ex之后的额外空间:SVC1、SVC2、SVC3、SVC1 var value = Regex.Replace(sample, " *, *", ","); 如何更改上面的正则表达式以使用管道?是一个特殊字符,在正则表达式中表示或,因此需要对其进行转义:\\ string sample = "SVC1 | SVC2 | SVC3 | S

我有以下字符串,它与管道“
|
”分开

我需要删除管道前后的空格。我编写了以下正则表达式,它运行良好,并删除了逗号Ex之后的额外空间:
SVC1、SVC2、SVC3、SVC1

var value = Regex.Replace(sample, " *, *", ",");

如何更改上面的正则表达式以使用管道?

是一个特殊字符,在正则表达式中表示
,因此需要对其进行转义:
\\

string sample = "SVC1 | SVC2 | SVC3 | SVC1 ";
var value = Regex.Replace(sample, @" *\| *", "|");
使用Linq

using System;
using System.Linq;
using System.Collections.Generic;

string sample = "SVC1 | SVC2 | SVC3 | SVC1 ";
string result = sample
                  .Split('|')     //Split by pipe 
                  .Aggregate(string.Empty, (x, y) => x + y.Trim()+'|'); //Trim white spaces and concatenate with previous string 

    Console.WriteLine(result);  //Print result

我认为这个正则表达式更优雅一些。
(\s)?\\\\\(\s)?
测试它,或者在创建错误的输出之前使用Trim(),或者分割并忽略空格:string[]output=input.split(新字符[]{','.'},StringSplitOptions.removemptyEntries.ToArray();当有更有效的字符串方法执行任务时,不应该使用正则表达式。这将在所有空间上分割,而不仅仅是管道两侧的空间。OP应该至少包含一个包含嵌入空格的子字符串示例,因为他/她的问题是“仅在管道前后删除空格”是否有向下投票的具体原因@Flydog57我的解决方案仅删除管道前后的空间。如果您是下一个投票人,请您提供下一个投票的反馈
using System;
using System.Linq;
using System.Collections.Generic;

string sample = "SVC1 | SVC2 | SVC3 | SVC1 ";
string result = sample
                  .Split('|')     //Split by pipe 
                  .Aggregate(string.Empty, (x, y) => x + y.Trim()+'|'); //Trim white spaces and concatenate with previous string 

    Console.WriteLine(result);  //Print result
string output = string.Join('|', sample.Split(new char[] { ' ', '|' }, StringSplitOptions.RemoveEmptyEntries));