如何在Split期间抑制空白正则表达式和均匀空间

时间:2009-08-30 23:38:08

标签: c# regex

我正在尝试创建一个正则表达式来标记字符串。字符串的一个例子是

ExeScript.ps1 $ 1,$ 0,%1,%3

或者它可能会被粗心地输入。 ExeScript.ps1 $ 1,$ 0,%1,%3`

我使用简单的正则表达式字符串。

Regex RE = new Regex(@"[\s,\,]");
return (RE.Split(ActionItem));

我在script1.ps1和$ 1之间得到了一大堆零 当它是均匀间隔时,如第一个例子中,我在script1.ps1和$ 1之间没有空格。

我做错了什么。我如何抑制空格并确保每个数组单元格中都有一个值,现在是一个空格。

鲍勃。

1 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

Regex RE = new Regex(@"[\s,\,]+");

+使分隔符“前一项中的一个或多个”。这可能会有所帮助,但它不会检测到两个逗号的情况(它会将其解释为一个分隔符,这可能不是您想要的)。另一种可能性是:

Regex RE = new Regex(@"\s*,\s*");

是零个或多个空格,后跟逗号,后跟零个或多个空格。

您可能还需要决定如何处理输入,例如:

foo, ,bar

您可以将其视为三个项目的列表,其中第二个是单个空格。