正则表达式包含和排除多个字符

时间:2015-07-23 11:57:45

标签: c# asp.net regex

我有一个字符串,我想删除任何具有负值的字符串,例如

var mystring = "+colour:black +year:2015 -model:golf";

我尝试使用以下正则表达式,但它不起作用。

var reg = "[+A-z:0-9]";

2 个答案:

答案 0 :(得分:2)

您可以使用

var result = Regex.Replace(mystring, @"\s*[-][^\s]*\s*", string.Empty);

仅限正值:

var result = Regex.Replace(mystring, @"\s*[+][^\s]*\s*", string.Empty);

正面和负面:

var result = Regex.Replace(mystring, @"\s*[+-][^\s]*\s*", string.Empty);

通过这种方式,您还可以处理任何没有字符但后面有空格的流浪连字符,并且使用\s*您将修剪输出字符串以重新处理空格。

关于正则表达式的注释[-+]匹配-+一次,\s*匹配0或更多空格,{{1匹配除空白之外的0个或更多个字符。

请参阅demo

enter image description here

答案 1 :(得分:1)

-\S+

会为你做同样的事。

-[a-zA-Z0-9:]+