Tengo una cadena que deseo dividir usando varios separadores (incluido un separador de cadena sobre el que no puedo encontrar mucha información)
Deseo dividir la cadena en las apariciones de / y la cadena AGL, pero en el momento en que imprimo la matriz matriz [0] solo obtengo L. Las comillas alrededor de la cadena AGL no parecen marcar la diferencia.
str = "LLF ABC TEMP / HERE / RET / UP TP 12F AGL PLACENAME VALUES / AVM / ABC / PPP / END" var array = []; array = str.split(/(AGL|\/|)/g);Entonces, al final, mi matriz debería tener 9 elementos.
LLF ABC TEMP
AQUÍ
RETIRADO
ARRIBA TP 12F
VALORES DEL NOMBRE DEL LUGAR
AV M
A B C
PPA
FINAL
Gracias.
Puedes usar
str = "LLF ABC TEMP / HERE / RET / UP TP 12F AGL PLACENAME VALUES / AVM / ABC / PPP / END" var array = str.split(/\s*(?:AGL|\/)\s*/); console.log(array); Tenga en cuenta que no necesita el indicador /g con .split , es el comportamiento predeterminado.
La expresión regular \s*(?:AGL|\/)\s* coincide
\s* - cero o más espacios en blanco(?:AGL|\/) - un grupo que no captura (para que su valor no pueda aterrizar en la matriz resultante) que coincida con AGL o /\s* - cero o más espacios en blanco.Creo que esto es lo que estabas tratando de hacer, fue un poco complicado, ya que necesitas usar el grupo lookbehind:
str = "LLF ABC TEMP / HERE / RET / UP TP 12F AGL PLACENAME VALUES / AVM / ABC / PPP / END" var array = []; array = str.match(/(\b(AGL)|(\w+([^\/])(?!(AGL)))+\b)/g); console.log(array)Si esto no es exactamente lo que estaba buscando, visite: regexr.com/66jhd Es una pequeña herramienta web excelente para probar expresiones regulares.