我想使用正则表达式从字符串中删除特殊字符,但前提是字符位于字符串的中间。领先和尾随应该留下来。例如:
a + b + c将变为abc;
a + bc +也会变成abc,因为尾随+应该保持不变。
我有一个将替换所有特殊字符的正则表达式
var newString = Regex.Replace(myString, @"[^\w]", string.Empty)
我不知道如何跳过第一个和最后一个字符。考虑到字符串长度可以从字符串长度开始,如果没有正则表达式,我必须总是检查长度,如果我想要子字符串等等。这一切都是可行的,但如果它完成了它会很好正则表达式与一行代码。有可能吗?
答案 0 :(得分:4)
您可以使用负面向前看并使用锚点
(?<!^)[^\w](?!$)
这将匹配不是第一个或最后一个的非单词字符,这意味着它将匹配“++ abc”中的第二个加号,从而将其转换为“+ abc”。