You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中Regex未执行替换问题求助

正则替换失效的问题分析与修复

问题根源

你的正则表达式逻辑完全错误:

  • 表达式"^\w\s\.\,\'\-()"中,^`代表匹配字符串开头位置,后续的字符序列是要求匹配一个固定顺序的组合(先字母/数字/下划线,再空格,接着点、逗号、单引号等依次出现),这和你的输入`ABC (A)`完全不匹配,所以正则找不到任何可替换的内容,自然返回原字符串。
  • 另外代码存在变量名大小写不一致的小问题:定义的是txtFirstname,替换时用的txtFirstName,VB.NET虽默认不区分大小写,但建议保持一致避免混淆。

修复方案

要移除指定的特殊字符,需将目标字符放入**正则字符类[]**中,这样正则会匹配其中任意一个字符,再替换为空即可。

修改后的代码:

Dim txtFirstname As String = "ABC (A)"
' 将需要移除的特殊字符放在[]内,-放在末尾无需转义,括号在[]中也无需转义
Dim pat As String = "[\.\,\'\`\-()]"
Dim rgx As New Regex(pat)
Dim checkFname As String = rgx.Replace(txtFirstname, "")
' 输出结果:ABC A

如果仅需要移除括号,可简化正则为"[()]"。

内容的提问来源于stack exchange,提问作者Ann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:17:04