Tengo una línea de texto y necesito capturar el valor de la clave "Palabra clave".
En este ejemplo, el valor es "ConquestImageDate".
Con mi código a continuación, puedo capturar el valor como ConquestImageDate".
Pero tiene un '"' al final.
Sé que puedo usar un reemplazo para deshacerme de él.
Pero, me gustaría hacerlo en la expresión regular.
let line = '(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"'; const re = /Keyword=\"\s*(\S+)/; m = re.exec(line); console.log(m[1]);No está haciendo coincidir el cierre " , y como exec puede producir un valor nulo, puede verificar m primero antes de indexarlo.
let line = '(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"'; const re = /Keyword="\s*(\S+)"/; m = re.exec(line); if (m) { console.log(m[1]); } Si también puede haber caracteres de espacio en blanco no deseados al final, podría hacer que \S no sea codicioso.
let line = '(0008,0023) VERS="CQ" VR="DA" VM="1" Keyword="ConquestImageDate" Name="Conquest Image Date"'; const re = /Keyword="\s*(\S*?)\s*"/; m = re.exec(line); if (m) { console.log(m[1]); } Está haciendo coincidir una Keyword que es singular, pero si en cualquier caso desea hacer coincidir espacios o saltos de línea también entre las comillas dobles
\bKeyword="\s*([^"]*?)"