我想使用正则表达式从字符串中删除特殊字符,但前提是这些字符位于字符串的中间。前导和尾随应该保留。示例:
a+b+c会变成abc;
a+bc+ 也会变成 abc,因为后面的 + 应该保留。
我有一个可以替换所有特殊字符的正则表达式
var newString = Regex.Replace(myString, @"[^\w]", string.Empty)
我不知道如何跳过第一个和最后一个字符。考虑到字符串长度可以从没有正则表达式的情况下开始,如果我想子字符串等,我必须始终检查长度。这都是可行的,但如果用一行代码用正则表达式完成它会很好。可能吗?
请您参考如下方法:
你可以使用消极的前瞻和锚定的后视
(?<!^)[^\w](?!$)
这将匹配不是第一个或最后一个的非单词字符,这意味着它将匹配“++abc”中的第二个加号,从而将其变成“+abc”。
