正则表达式在冒号之前不会替换任何东西

时间:2011-07-11 10:30:50

标签: c# regex

我想在电子邮件中删除're:'关闭主题行:

我的字符串帮助扩展程序执行以下操作:

  return Regex.Replace(value, "([re:][re :])", "",RegexOptions.IgnoreCase);

但是,它似乎与"re :"匹配,但不匹配"re:". 有什么理由可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

你的意思可能是:

Regex.Replace(value, "re:|re :", "", RegexOptions.IgnoreCase);

也可以写成:

Regex.Replace(value, "re ?:", "", RegexOptions.IgnoreCase);

这是一个可能更好的表达方式:

Regex.Replace(value, "^\s*re\s*:\s*", "", RegexOptions.IgnoreCase);

仅匹配字符串开头(^)并删除任何后续空格(\s*)。