输入:Test 1 | Test 2 | Test 3 | Test 4
这里的char |
就像一个分隔符。
有人可以给我正则表达式或任何简单的方法来获取这样的字符串。
这不应影响Test
和3
之间的空间。
输出应为Test 1|Test 2|Test 3|Test 4
不只有一个空间。空间可能不止一个。
答案 0 :(得分:0)
这可以用作RegularExpression来匹配管道之前和之后的多个空格
string pattern = @"\s+\u007C\s+";
string search = "Test 1 | Test 2 | Test 3 | Test 4";
string result = Regex.Replace(search, pattern, "|");
\s+
匹配一个或多个空格
\u007C
匹配垂直管道|
- 管道是正则表达式的保留字符,因此您必须使用unicode约定或使用\
转义管道,因此模式将是
string pattern = @"\s+\|\s+";
另外,如果你想要考虑一个混合的情况,你可以在模式改变之前或之后有一个没有空格的管道:
string pattern = @"\s*\|\s*";
\s*
表示零个或多个空格
答案 1 :(得分:0)
string text = "Test 1 | Test 2 | Test 3 | Test 4";
text = text.Replace(" | ", "|").Replace(" |", "|").Replace("| ", "|");
答案 2 :(得分:0)
非正则表达方式是:
var tokens = input.Split('|');
foreach (var token in tokens)
{
token.Trim();
}
string output = string.Join("|", tokens);
这会在分隔符上拆分字符串,修剪单个标记以删除前导和尾随空格,然后使用分隔符重新加入标记。