tengo esta cadena:
|AL;GF=0;ID=17;AF=122|CT;GF=0;ID=15;AF=123|BD;GF=0;ID=1;AF=124|Quiero hacer coincidir si el bloque CT (tiene CT; entre | ) tiene ID = 1, probé:
/\|CT;.*?ID=1;(?=.*\|)/Pero no funciona.
Código:
let string = '|AL;GF=0;ID=17;AF=122|CT;GF=0;ID=15;AF=123|BD;GF=0;ID=1;AF=124|' console.log(string.match(/\|CT;.*?ID=1;(?=.*\|)/g)) // return ['|CT;GF=0;ID=15;AF=123|BD;GF=0;ID=1;'] // expected null¿Puede ayudarme alguien?
Puedes usar
/\|CT;[^|]*ID=1;/Vea la demostración de expresiones regulares .
Detalles :
\|CT; - |CT; cuerda[^|]* - cero o más caracteres que no sean | carbonizarseID=1; - una cadena fija.Vea una demostración de JavaScript:
const strings = [ '|AL;GF=0;ID=17;AF=122|CT;GF=0;ID=15;AF=123|BD;GF=0;ID=1;AF=124|', '|AL;GF=0;ID=17;AF=122|CT;GF=0;ID=1;AF=123|BD;GF=0;ID=1;AF=124|' ] for (const string of strings) { console.log(string.match(/\|CT;[^|]*ID=1;/)?.[0]); }