在VB.net中,我有以下行从字符串中删除所有非字母数字字符:
return Regex.Replace(build, "[\W]", "")
我现在需要对此进行扩展,以删除不是[]或_的非字母数字字符。
我已将行改为:
return Regex.Replace(build, "[\W\[\]_]", "")
但我很确定这说的是
替换非单词或[或]或_
如何否定[]和_ chars的测试,以便
replace non-word and not [ and not ] and not _
一些例子:
"[Foo Bar_123456]" => "[FooBar_123456]"
"[Foo Bar_123-456*]" => "[FooBar_123456]"
(必要时可提供更多)
答案 0 :(得分:3)
试试这个正则表达式:
[^\w\[\]]
它表示匹配(然后替换)除字母数字以外的所有内容(包括“_”),“[”和“]”
答案 1 :(得分:1)
您可以使用character set subtraction:
[\W-[_\[\]]]
IE中。已移除\W
,_
和[
的{{1}}(后两个需要转义,因为它们是字符集中的元字符)。逐字字符串]
避免了需要从C#转义每个反斜杠:
@"..."