Tengo dos variantes de cadena:
Key ("vinCode")=(V1234567890123456) some text. Key (vinCode)=(V1234567890123456) some text.Estoy tratando de obtener valores entre paréntesis (vinCode, V1234567890123456). Actualmente tengo tal expresión regular:
(?<=\().*?(?=\)) Pero obtiene valores con "" , por ejemplo ("vinCode", vinCode, V1234567890123456).
¿Es posible crear una expresión que pueda obtener valores siempre sin "" ?
Puede agregar una coincidencia opcional de " en la parte posterior y luego requerir que el siguiente carácter no sea un " . La cotización de cierre se puede comparar con una referencia inversa a la primera cotización capturada:
let regex = /(?<=\((")?)(?!").*?(?=\1\))/g; let tests = [ 'Key ("vinCode")=(V1234567890123456) some text.', 'Key (vinCode)=(V1234567890123456) some text.' ]; for (let test of tests) { console.log(test.match(regex)); } Nota: esta expresión regular no coincidirá con una cadena vacía entre comillas: ("")