正则表达式,仅匹配字符与空格

时间:2011-10-18 16:13:15

标签: regex

我在c#中有以下正则表达式:

return Regex.Replace(str, "[^a-zA-Z0-9_.-]+", "", RegexOptions.Compiled);

有效字符为a-z,0-0,_,。, - 。

我想只匹配 - 如果左边有空格和/或右边。

举个例子:
pavement -roads =不应该替换任何东西(只有有效的情况)(路面也很好) 路面 - 道路= - 应该删除
路面 - 道路= - 应该删除
路面 - 道路= - 应该被删除

2 个答案:

答案 0 :(得分:0)

看起来你只想删除带有空格的破折号。尝试

(?:[^\w. ]|(?:\-(?= )))+

答案 1 :(得分:0)

试试这个:

return Regex.Replace(str, "( +)-( +)", "\\1\\2", RegexOptions.Compiled);

这应删除任何由空格包围的破折号,并保持空格不变。