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

如何编写JavaScript正则匹配前后非字母数字的编程语言名称(含C++、C#)

正则匹配含特殊字符编程语言名称的解决方案

问题原因

  • 你原来使用的\b单词边界仅匹配\w(字母、数字、下划线)和\W(非上述字符)的交界位置,C++、C#这类包含+、#非单词字符的名称,前后边界不会被\b识别,导致匹配失败
  • 直接拼接编程语言名称没有做正则特殊字符转义,+、*这类字符会被识别为正则量词,触发语法错误或匹配逻辑异常

实现步骤

  1. 先对要匹配的编程语言名称做正则特殊字符转义,避免特殊字符干扰匹配逻辑
// 转义正则特殊字符的工具函数
function escapeRegExp(str) {
  return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
  1. 用否定环视断言替代\b实现自定义边界判断,匹配规则为:名称前后要么是字符串首尾,要么是非字母数字字符
// 逐个构造语言的匹配正则
const escapedLang = escapeRegExp(language[element]);
const reg = new RegExp(`(?<![a-zA-Z0-9])${escapedLang}(?![a-zA-Z0-9])`, 'gi');

匹配效果示例

  • 可以成功匹配我会用C++写代码里的C++、C#是.NET生态的主流语言里的C#
  • 不会误匹配Cpp、Csharp这类和目标语言名称连写的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:09:02