esta es una pregunta realmente difícil de formular, pero ¿hay alguna manera de hacer que una expresión regular coincida con 'a-a' y 'b-b' , pero no 'a-b' ? Básicamente, quiero que coincida con el mismo carácter a ambos lados de un carácter intermedio (como '-'), pero dicho carácter es intercambiable con otros caracteres en un conjunto de caracteres (como [abc] ). Me gustaría que la solución no sea de fuerza bruta ya que el conjunto de caracteres que tengo en mente es bastante grande, y la respuesta debería estar en javascript
El patrón que está buscando es /^([ac])-\1$/
Puede hacer referencia a cualquier grupo capturado a través de una sintaxis \number , donde number es el número de su grupo, comenzando desde 1.
Pruebas:
const pattern = /^([ac])-\1$/; pattern.test('a-a'); // true pattern.test('b-b'); // true pattern.test('c-c'); // true pattern.test('a-b'); // false