Tengo esta cadena que divido cada vez que encuentra dos dos puntos.
"por ejemplo: por ejemplo, esta cadena se convierte en" ["por ejemplo", "por favor", "la cadena se convierte en"]
Hago esto con:
text.split(/(:.*?:)/g)Luego interpreto una cadena como "dentro" del delimitador si contiene los caracteres que espero y ninguno de los que no.
¿Cómo hago para que también extraiga otro delimitador como $$...$$ así como el original :...: pero también incluya el delimitador en algún lugar para poder usar una lógica diferente?
Para el contexto, estoy analizando el texto en diferentes componentes de reacción.:...: incluye direcciones para incrustar un determinado componente, mientras que $$...$$ incluye MathJax.
ACTUALIZADO
Puede probar esta expresión regular con controles particulares para :...: y $$...$$ patrones
const text = "for exam:ple thi:s string $$turns$$ into" const partialStrings = text.split(/(:.*?:|\$\$.*?\$\$)/g) for (const partialString of partialStrings) { if (partialString.startsWith(":")) { //TODO: Do your logic with `:...:` pattern console.log(partialString + " contains ':...:'") continue } if (partialString.startsWith("$$")) { //TODO: Do your logic with `$$...$$` pattern console.log(partialString + " contains '$$...$$'") continue } //no patterns console.log(partialString + " has no patterns") }RESPUESTA ANTIGUA
Simplemente puede dividir su cadena con :
const data = "for exam:ple thi:s string turns into" console.log(data.split(":")) Si desea tener un comportamiento similar para $$ y una función reutilizable, puede declarar una función llamada splitBy
const splitBy = (data, delimiter) => { return data.split(delimiter) } const data = "for exam$$ple thi$$s string turns into" console.log(splitBy(data, "$$"))