Tengo un texto donde necesito extraer el nombre de la comunidad. El delimitador para dividir es "-"
Por lo tanto Iowa - Cedar Rapids - Meth-Wick Community debe dar como resultado Meth-Wick Community
si la entrada es Iowa - Cedar Rapids - The Gardens of Cedar Rapids resultado debe ser The Gardens of Cedar Rapids
he probado con
"Iowa - Cedar Rapids - The Gardens of Cedar Rapids".match(new RegExp(/([AZ])\w{3}/gi))Prueba este para ver el tamaño:
console.log("Iowa - Cedar Rapids - The Gardens of Cedar Rapids".replace(/([\w\s]+)\s-\s([\w\s]+)\s-\s([\w\s]+)/i,'$3'));Puede hacer una búsqueda anticipada negativa para encontrar la última aparición del delimitador como se menciona aquí https://stackoverflow.com/a/8374980/5417843 y luego extraer el nombre de la comunidad.
input = "Iowa - Cedar Rapids - The Gardens of Cedar Rapids" communityName = input.match(new RegExp('- (?:.(?!- ))+$')) // '- The Gardens of Cedar Rapids' communityName[0].substring(2) // 'The Gardens of Cedar Rapids'Aquí hay una solución simple, usa menos expresiones regulares tanto como sea posible:
"Iowa - Cedar Rapids - Meth-Wick Community".split(/ - /g).slice(-1)[0] "Iowa - Cedar Rapids - The Gardens of Cedar Rapids".split(/ - /g).slice(-1)[0]