正则表达式删除多余的空格

Regular expression removes extra whitespaces

我有一个字符串,我想在其中删除任何特殊字符,例如 ~ 或 * 等

我使用的是正则表达式“[ ](?=[ ])|[^-_,A-Za-z0-9 ]+”

然后我注意到它连同特殊字符一起删除了多余的白色space。例如,如果一个字符串在大于 1 的单词之间有 space,它会将其更改为单个 space。例如,如果一个字符串是

  ~ my test   123    456

我想返回 my test 123 456 但我得到的是 my test 123 456

所以我改了[ ](?=[ ])|[^-_,A-Za-z0-9 ]+ to [ ][^-_,A-Za-z0-9 ]+

但现在 ~ 没有从字符串中删除。我得到 ~ my test 123 456

我使用的代码如下:

line = Regex.Replace(line, "[ ][^-_A-Za-z0-9 ]+", "").Trim()

你可以试试这个,

line = Regex.Replace(line, @"[^-,\w ]", "").Trim()

DEMO