1

输入:Test 1 | Test 2 | Test 3 | Test 4 这里的字符|就像一个分隔符。

有人可以给我正则表达式或任何简单的方法来获取这样的字符串。这不应该影响 和 之间的Test空间3

输出应该是Test 1|Test 2|Test 3|Test 4

不只有一个空间。空格可能不止一个。

4

3 回答 3

0

这可以用作正则表达式来匹配管道前后的多个空格

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*表示零个或多个空格

于 2012-07-12T09:21:39.170 回答
0
string text = "Test 1 | Test 2 | Test 3 | Test 4";

text = text.Replace(" | ", "|").Replace(" |", "|").Replace("| ", "|");
于 2012-07-12T09:24:04.427 回答
0

非正则表达式方式是:

var tokens = input.Split('|');
foreach (var token in tokens)
{
    token.Trim();
}
string output = string.Join("|", tokens);

这会拆分分隔符上的字符串,修剪各个标记以删除前导和尾随空格,然后使用分隔符重新连接标记。

于 2016-10-28T11:34:11.277 回答