Estoy tratando de encontrar nombres de lenguajes de programación en el texto, he intentado durante días encontrar la expresión regular correcta, pero no puedo encontrarla. También tengo problemas cuando el idioma es C ++ o C #. Quiero hacer coincidir el nombre de los idiomas si comienza o termina con algo que no sea letras o dígitos.
reg = new RegExp("\\b[\\+" + language[element] + "] \\b", "gi");
Puedes usar
new RegExp("(?<!\\w)" + language[element].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + "(?!\\w|\\+{2}|#)", "gi");
Vea la demostración de expresiones regulares si language[element]
contiene el texto C
Detalles :
(?<!\w)
- no se permite la palabra char inmediatamente antes de la ubicación actualC
- un carácter C
(?!\w|\+\+|#)
: una búsqueda anticipada negativa que falla la coincidencia si hay una palabra char, o ++
o un #
char inmediatamente a la derecha de la ubicación actual.