Tengo las siguientes cadenas:
inputs.test=al inputs.test=ally^inputs.test=alNOTinputs.test=altogether inputs.test=ally^inputs.test=alwaysNOTinputs.test=al inputs.test=alORinputs.test=al^inputs.test=ally^ORinputs.test=al inputs.test<=alORinputs.test!=alORinputs.test>=al^inputs.test!=ally Me gustaría reemplazar todas las instancias de la cadena inputs.test[= or != or <= or >= or NOT]al con inputs.test[= or != or <= or >= or NOT]FIXED
Todo mientras se ignoran las subcadenas después del operador (en este ejemplo, siempre, aliado, todos deben dejarse solos).
inputs.test=FIXED inputs.test=ally^inputs.test=FIXEDNOTinputs.test=altogether inputs.test=ally^inputs.test=alwaysNOTinputs.test=FIXED inputs.test=FIXEDORinputs.test=FIXED^inputs.test=ally^ORinputs.test=FIXED inputs.test<=FIXEDORinputs.test!=FIXEDORinputs.test>=FIXED^inputs.test!=allyEsto puede ser demasiado complicado de resolver solo con Regex, solo me pregunto si hay una manera.
Un poco de factorización y una afirmación bien colocada después de 'al' haría que esta expresión regular funcione.
Simplemente reemplace con $1FIXED
/(inputs\.test(?:[!<>]?=|NOT))al(?!ly|together|ways)/ghttps://regex101.com/r/CDSYuR/1
( # (1 start) inputs \. test (?: [!<>]? = | NOT ) ) # (1 end) al (?! ly | together | ways )