我需要在分隔符上拆分字符串,但不要将分隔符加倍。
例如"\m55.\m207|DEFAULT||DEFAULT|55||207"
一旦拆分应该导致
我正在尝试使用正则表达式执行此操作。如果它有所作为,我正在使用C#System.Text.RegularExpression.Regex
。
到目前为止,我有"[^|]\|[^|]"
,但是它无法处理分隔符旁边的转义分隔符的位置。 IE |||
我确信网络上有解决方案,但我尝试使用多个不同的字词进行搜索,但找不到正确的术语组合来查找它。
如何通过在正则表达式中将其加倍来逃避分隔符?或者如果有一个更简单的解决方案是什么?
修改
这是一个更复杂的例子:
输入:“\ m55。\ m207 | DEFAULT || DEFAULT ||| 55 || 207” 预期产出:
答案 0 :(得分:3)
因为您的演示非常简单,并且您只想使用单个|
拆分,所以我可以在这里使用\b
string txt = @"\m55.\m207|DEFAULT||DEFAULT|55||207";
string patten = @"\b\|\b";
foreach (var str in Regex.Split(txt, patten))
{
Console.WriteLine(str);
}
答案 1 :(得分:1)