Regex 正则表达式替换字符串中的非单词字符,忽略特定字符
在VB.net中,我有一行从字符串中删除所有非字母数字字符:Regex 正则表达式替换字符串中的非单词字符,忽略特定字符,regex,vb.net,regex-negation,Regex,Vb.net,Regex Negation,在VB.net中,我有一行从字符串中删除所有非字母数字字符: return Regex.Replace(build, "[\W]", "") 现在,我需要扩展它,以删除不是[]或u的非字母数字字符 我已将该行更改为: return Regex.Replace(build, "[\W\[\]_]", "") 但是我很肯定这是说 替换非单词或[或]或_ 我如何否定[]和uChars的测试,使其显示 replace non-word and not [ and not ] and not _ 一
return Regex.Replace(build, "[\W]", "")
现在,我需要扩展它,以删除不是[]或u的非字母数字字符
我已将该行更改为:
return Regex.Replace(build, "[\W\[\]_]", "")
但是我很肯定这是说
替换非单词或[或]或_
我如何否定[]和uChars的测试,使其显示
replace non-word and not [ and not ] and not _
一些例子:
"[Foo Bar_123456]" => "[FooBar_123456]"
"[Foo Bar_123-456*]" => "[FooBar_123456]"
(如有必要,可提供更多)您可以使用:
例如,删除了\W
和[
和]
(后两者需要转义,因为它们是字符集中的元字符)。逐字字符串@“…”
避免了从C#中转义每个反斜杠:
您可以使用:
例如,删除了\W
和[
和]
(后两者需要转义,因为它们是字符集中的元字符)。逐字字符串@“…”
避免了从C#中转义每个反斜杠:
试试这个正则表达式:
[^\w\[\]]
它说匹配(然后替换)除字母数字以外的所有内容(包括“”)、“[”和“]”试试这个正则表达式:
[^\w\[\]]
上面写着匹配(然后替换)除字母数字(包括“”)、“[”和“]”之外的所有内容。模式应该是:
[\W-[\\\[\]]
?@JonEgerton-Oops,是的。被反斜杠冲昏头脑:-)。[\W-[]]
也有效<代码>]如果它是开头后的第一个字符[
或[^
;[
如果不跟随-
,则不必转义;
与\W
不匹配,因此不需要列出它。我明白了。模式应该是:[\W-[\\\\[\\]]
?@JonEgerton Oops,是的。被反斜杠迷住了:-)。[\W-[]]]
也有效。]
如果是开头后的第一个字符[
或[^
;[
如果不遵循-
,则它并不特别;\u
与\W
不匹配,因此不需要列出它。
[^\w\[\]]