输入:Test 1 | Test 2 | Test 3 | Test 4
这里的字符|
就像一个分隔符。
有人可以给我正则表达式或任何简单的方法来获取这样的字符串。这不应该影响 和 之间的Test
空间3
。
输出应该是Test 1|Test 2|Test 3|Test 4
不只有一个空间。空格可能不止一个。
输入:Test 1 | Test 2 | Test 3 | Test 4
这里的字符|
就像一个分隔符。
有人可以给我正则表达式或任何简单的方法来获取这样的字符串。这不应该影响 和 之间的Test
空间3
。
输出应该是Test 1|Test 2|Test 3|Test 4
不只有一个空间。空格可能不止一个。
这可以用作正则表达式来匹配管道前后的多个空格
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*
表示零个或多个空格
string text = "Test 1 | Test 2 | Test 3 | Test 4";
text = text.Replace(" | ", "|").Replace(" |", "|").Replace("| ", "|");
非正则表达式方式是:
var tokens = input.Split('|');
foreach (var token in tokens)
{
token.Trim();
}
string output = string.Join("|", tokens);
这会拆分分隔符上的字符串,修剪各个标记以删除前导和尾随空格,然后使用分隔符重新连接标记。