我在c#中有以下正则表达式:
return Regex.Replace(str, "[^a-zA-Z0-9_.-]+", "", RegexOptions.Compiled);
有效字符为a-z,0-0,_,。, - 。
我想只匹配 - 如果左边有空格和/或右边。
举个例子:
pavement -roads =不应该替换任何东西(只有有效的情况)(路面也很好)
路面 - 道路= - 应该删除
路面 - 道路= - 应该删除
路面 - 道路= - 应该被删除
答案 0 :(得分:0)
看起来你只想删除带有空格的破折号。尝试
(?:[^\w. ]|(?:\-(?= )))+
答案 1 :(得分:0)
试试这个:
return Regex.Replace(str, "( +)-( +)", "\\1\\2", RegexOptions.Compiled);
这应删除任何由空格包围的破折号,并保持空格不变。